Это основано на информации, предоставленной Yi Jiang и Панайотиса выше, и jquery ui button sample code:
Как я переносе ранее приложения JSP, которая имела панель с изображениями на кнопку, я хотел бы иметь изображение внутри сама декларация кнопки, а не создавать отдельный класс для каждой кнопки панели инструментов.
<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>
Конечно, было больше кнопок, чем только два выше. S тег выше является struts2 тега, но вы могли бы просто заменить его любым URL
<button id="btnOpenDocs" data-img="/images/multi.png">Open Documents</button>
ниже сценарий выглядит для атрибута данных-IMG от кнопки тега, а затем устанавливает, что в качестве фонового изображения для кнопка.
Он временно устанавливает ui-icon-bullet (любой произвольный существующий стиль), который затем изменяется позже.
Этот класс определяет временный стиль (лучше добавить дополнительные селектора для конкретной панели инструментов, если вы планируете использовать это, чтобы остальная часть вашей страницы оставалась без изменений).Действительное изображение будет заменено ниже Javascript:
button.ui-button .ui-icon {
background-image: url(blank.png);
width: 0;
height: 0;
}
и следующий 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');
});
});
Это сработало для меня. Обратите внимание, что вы также можете использовать спрайты. –
@RobOsborne как вы можете использовать спрайт? он не работает для меня –
Спасибо! Является ли это документированным в jquery-ui docs? Я не могу найти его нигде. – shimizu