所以我有一個jQuery函數:在jQuery中查找綁定到函數的所有元素?
$("#el01").myFunc();
$("#el02").myFunc();
$("#el03").myFunc();
有沒有簡單的方法來找出在DOM元素已經被綁定到功能,無需手動保存在一個對象或數組引用?
所以我有一個jQuery函數:在jQuery中查找綁定到函數的所有元素?
$("#el01").myFunc();
$("#el02").myFunc();
$("#el03").myFunc();
有沒有簡單的方法來找出在DOM元素已經被綁定到功能,無需手動保存在一個對象或數組引用?
有幾個常見的選項!
一種常見的方法是,如果你觸摸它們(留個腳印),這樣一來,你可以看看他們與選擇裝飾與類的元素,或數據屬性:
$('.myFuncified')...
或者你可以將它們的標籤保存在一個存儲狀態的對象中(你說你不想這麼做......這很公平)。
但是,除非留下一些足跡,否則沒有辦法找出觸摸了某個元素。
啊,我明白了。我認爲可能有一種方法可以循環播放dom,並查看是否有任何內容被綁定......或者,如果某個函數綁定的內容以某種方式記錄在函數的原型中。添加類很簡單! –
這裏的核心問題是什麼是myFunc?這是這裏的真正罪魁禍首。可以輕鬆修改它以瞭解它的行爲。
(function(){
var stored = $.myStored = [];
$.fn.myFunc = function(args){
this.each(function(){ stored.push(this); });
}
})()
現在您可以輕鬆訪問存儲的元素。當然有幾種方法可以完成這個任務,但是這個想法是原型函數必須記錄它遇到的一些元素。
在你的榜樣,你能做到這一點與上面的代碼中
(function(){
var stored = $.myStored = [];
$.fn.myFunc = function(args){
this.each(function(){ stored.push(this); });
}
})()
$("#el01").myFunc();
$("#el02").myFunc();
$("#el03").myFunc();
$($.myStored).css('color','red');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="el01">el01</div>
<div id="el02">el02</div>
<div id="el03">el03</div>
類[相關](http://stackoverflow.com/questions/2518421/jquery-find-事件處理程序註冊與對象),但它是相反的。我不認爲jQuery跟蹤,但我正在尋找。 –