對給定對象註冊的事件進行測試我已經嘗試了建議here的答案,其後跟幾乎所有類似/重複問題的答案。檢查.data('events')
根本不起作用,返回undefined
我以前有過的對象(立即在那個)註冊了一個事件。jQuery;使用.live()
現在,需要注意的是,我實際上使用.live()
註冊了所述事件,而不是使用.bind()
或別名方法。
我剛纔讀(以前我連發帖的問題)從jQuery的下面上.live()
:
的
.live()
方法能夠影響尚未被添加到元素通過使用事件委託來實現DOM:綁定到祖先元素的處理程序負責在其後代觸發的事件。 傳遞給.live()
的處理程序永遠不會綁定到元素;相反,.live()
將特殊處理程序綁定到DOM樹的根目錄。在上面的例子中,當單擊新元素時...
鑑於這一信息,你會怎麼辦?(如果有可能的話)檢查一個事件是否以「註冊」給定物體.live()
?有了這個新發現的信息,我猜它會與window
或document
對象開始......
理念更新:如果有一種方法可以挖掘到的.live()
的DOM監測能力,或許我可以簡單地通過.bind()
每當發生變化時重新綁定事件(相同到的.live()
,與然而,對於.data('events')
檢查的支持,這些事件直接綁定。)
太好了!謝謝@ RocccoC5 - 像魅力一樣工作,我只需要在第一個解決方案(*'obj [0] .selector')中爲'obj'添加一個偏移量,因爲它返回一個單元素數組* * – Dan
@Bracketworks - 很高興聽到。不知道爲什麼你需要在'obj'上指定索引。調用'each()'應該遍歷'$ .data(document,「events」),live'數組中的每個對象,並將對象的索引作爲'idx'參數傳遞給函數,和實際的對象作爲'obj'參數。看看這個:http://jsfiddle.net/Xu3Yn/1/ – RoccoC5