下載jQuery UI時,您會得到一個樣式表,用於選擇任何主題,以及包含圖標的多個圖像文件。我已經想出瞭如何將一個圖標添加到單個元素<button>
,但我有一種情況,我在網格中動態生成按鈕(jqGrid)並且想要使用這些圖標。所以,說我想用這個圖標從CSS文件:如何將jQuery UI圖標添加到動態生成的按鈕?
.ui-icon-trash { background-position: -176px -96px; }
然後,我通過處理gridComplete
事件的按鈕添加到網格中:
gridComplete: function() {
var ids = $("#myGrid").jqGrid('getDataIDs');
for (var i = 0; i < ids.length; i++) {
var deleteButton = "<button type='button' style='height: 22px;width: 20px;' title='Delete' onclick=deleteRow(" + ids[i] + ")></button>";
$("#myGrid").jqGrid('setRowData', ids[i], { DeleteButton: deleteButton });
}
}
我使用一個類試圖在按鈕標記,例如,deleteRowButton
,然後使用jQuery這樣的:
$(".deleteRowButton").button({
icons: {
primary: 'ui-icon-trash'
},
text: false
});
但是,這是行不通的。我需要做些什麼來讓我的按鈕有這個圖標?
謝謝弗蘭克。由於該圖標實際上是包含所有圖標的較大圖像的一部分,因此我會爲「background-image」URL指定什麼內容?這裏有一個圖標集的鏈接:http://jquery-ui.googlecode.com/svn/tags/1.6rc5/tests/static/icons.html –
嗯,這可能有點棘手。你需要做的是指定背景偏移,如下所示: background-position:-176px -96px; – FrankieAvocado
嗯,雖然不會縮小尺寸,但最終會顯示所有其他圖標。你可能能夠逃脫一個名爲「Before」的僞選擇器,但我不認爲IE8/7/6會支持它,但這意味着你必須選擇除按鈕之外的其他東西,因爲按鈕不能包含其他元素(也許錨定標籤會很好)。請參閱http://nicolas.gallagher.com/css-background-image-hacks/ – FrankieAvocado