Esto se basa en la información proporcionada por Yi Jiang y Panayiotis anteriormente, y el jquery ui button sample code:
Como estaba migrando una solicitud anterior JSP que tenía una barra de herramientas con imágenes por botón, que quería tener la imagen en el interior la declaración del botón en sí misma en lugar de crear una clase separada para cada botón de la barra de herramientas.
<div id="toolbarDocs" class="tableCaptionBox">
<strong>Checked Item Actions: </strong>
<button id="btnOpenDocs" data-img="<s:url value="/images/multi.png"/>">Open Documents</button>
<button id="btnEmailDocs" data-img="<s:url value="/images/email.png"/>">Attach to Email</button>
</div>
Por supuesto, había muchos más botones que solo los dos anteriores. La etiqueta s anterior es una etiqueta struts2, pero sólo podía reemplazarlo con cualquier URL
<button id="btnOpenDocs" data-img="/images/multi.png">Open Documents</button>
El siguiente script busca el atributo de datos-img de la etiqueta de botón, y luego establece que a medida que la imagen de fondo para el botón.
Establece temporalmente ui-icon-bullet (cualquier estilo existente arbitrario) que luego se cambia posteriormente.
Esta clase define el estilo temporal (es mejor agregar otros selectores para la barra de herramientas específica si planea usar esto, para que el resto de su página no se vea afectado).La imagen real será sustituido por el siguiente Javascript:
button.ui-button .ui-icon {
background-image: url(blank.png);
width: 0;
height: 0;
}
y la siguiente Javascript:
$(document).ready(function() {
$("#toolbarDocs button").each(
function() {
$(this).button(
{ text: $(this).attr('data-img').length === 0? true: false, // display label for no image
icons: { primary: "ui-icon-bullet" }
}).css('background-image', "url(" + $(this).attr('data-img') +")")
.css('background-repeat', 'no-repeat');
});
});
Esto funcionó para mí. Tenga en cuenta que también puede usar sprites. –
@RobOsborne ¿cómo se puede usar sprite? no funciona para mí –
¡Gracias! ¿Está esto documentado en los documentos jquery-ui? No puedo encontrarlo mencionado en ningún lado. – shimizu