2
我發現了一個擴展核心jQuery init函數的方法(這是在您使用$()或jQuery()函數時調用的函數)。這是不可能使用普通的代理模式,但下面的代碼使得它的工作:擴展jQuery核心的有用性
var origInit = jQuery.fn.init;
jQuery.fn.init = function(selector, context, rootjQuery) {
if (some condition) {
//custom code here, possibly returning some other jQuery object than
//what jQuery would normally return
}
return origInit.call(jQuery.fn, selector, context, rootjQuery);
}
我的問題是在哪裏,這可能是有用的,因爲我意識到用它來選擇的緩存我最初的意圖是有問題的(因爲它會影響其他插件的行爲 - 我最終使用單獨的緩存功能)。
所以我想我會分享的方法,我也很好奇聽到其他想法的潛在用途。我想也許它可以用來支持某種類型的自定義選擇器,不過我不確定何時需要這樣做,因爲jQuery已經提供了很多選擇器。
感謝您的信息,這非常有趣 - 我從來不知道sub()函數。僅供參考,其文檔如下: http://api.jquery.com/jQuery.sub/ – 2011-04-30 15:29:53
自1.7以來已棄用 – 2012-06-08 19:32:58