我們正在使用JQuery UI lib進行一些非常好的界面增強功能。但是,由於我們並不需要支持IE6等舊版瀏覽器,沒有必要像類:如何從JQuery UI中刪除未使用的類
.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl
它們的jQuery UI添加。有什麼辦法可以告訴JQuery UI不要添加它們嗎?從它刪除樣式是沒有問題的,但是當你有很多空的類時,它看起來並不好。
我們正在使用JQuery UI lib進行一些非常好的界面增強功能。但是,由於我們並不需要支持IE6等舊版瀏覽器,沒有必要像類:如何從JQuery UI中刪除未使用的類
.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl
它們的jQuery UI添加。有什麼辦法可以告訴JQuery UI不要添加它們嗎?從它刪除樣式是沒有問題的,但是當你有很多空的類時,它看起來並不好。
這是實現此目的的一種可能方式。
jQuery的UI部件引起),其被)的_create的執行(和_init之間觸發(一個「創建」事件方法:
this._create();
this._trigger("create");
this._init();
此事件從所述基本對象的widget升高,從而它是可用於實現它的所有小部件。
'ui-corner-xxx'(及其他)的類通常是在'_create()'方法中創建的,因此您可以將事件處理程序綁定到小部件的'create'選項以刪除這些類。類似於:
var classesToRemove = ['ui-corner-all', 'ui-corner-top',
'ui-corner-bottom', 'ui-corner-right', 'ui-corner-left',
'ui-corner-tl', 'ui-corner-tr', 'ui-corner-bl', 'ui-corner-br'];
var removeClassesCreateHandler = function(event, ui) {
var that = this;
$.each(classesToRemove, function(idx, val) {
$('.' + val, that).removeClass(val);
});
};
$("#accordion").accordion({
create: removeClassesCreateHandler
});
這是一個有關jsfiddle的工作示例。
關於create
事件的jQuery UI部件的
要注意,並非所有的jQuery UI部件真正實現了Widget廠(由於上述的解決是可能的)是很重要的。
因此,即使文檔頁面顯示create
選項,它不一定可用。
這就是Datepicker的情況。它仍然依賴於很老的代碼,並沒有實現Widget工廠(然而 - 它計劃被重構)。
我用Dust-Me selectors刪除不必要的CSS。它真的幫助我擺脫了未使用的風格。
這是爲了在css文件中查找未使用的css選擇器,而不是將它們從html中刪除... –
@DidierG .:糟糕。我想我應該再次通過質疑。 – xyz
圖書館沒有選擇要添加或不添加哪些類。順便說一句,他們不支持IE6 *,他們在那裏用'border-radius'([doc](http://jqueryui.com/docs/Theming/API))來設置窗口小部件 - 並且它們不是傷害,除了你,沒有人去檢查你的HTML源代碼;-) –
是的,我知道,但它不是必要的一些小部件。我瀏覽了文檔,沒有找到任何選項。只是要求確保我沒有忽視任何信息 –