2012-06-21 61 views
1

我有動態生成的內容。如何「聆聽」選擇器並在可用時觸發某個功能,然後停止聆聽。在jQuery 1.7中有這樣的東西嗎?如何推遲一個函數,直到元素可用?

+0

閱讀jQuery.Deferred API – frosty

+0

@aaronfrost該API如何處理這個用例呢? – millimoose

+2

直接的方法是將觸發此功能的內容移動到正在生成內容的位置。我不認爲有一個當前的jQuery插件來處理DOM修改事件。你可以嘗試直接處理我想的。 – millimoose

回答

1

編輯:對不起,沒有真正閱讀你的問題的權利! :)

你可以這樣做,但這有點痛苦。 jQuery中沒有對它的本地支持,但是瀏覽器會觸發可以連接到的事件。查看可用的mutation events以及如何實施它們,特別是DOMNodeInserted event。還有一些info here關於如何處理刪除元素(使用jQuery掛接到DOMNodeRemoved事件)。希望這可以幫助!

我原來的,不正確的答案:

您應該能夠使用jQuery的on()方法綁定事件給出元素。如果頁面呈現時元素不存在,您可以將事件綁定到存在的父元素,並讓jQuery通過DOM將事件「冒泡」到您附加的處理程序。

以下是取自the documentation的示例。該事件綁定到tbody元素,但它處理後裔tr元素上的單擊事件,該事件在綁定事件時可能存在也可能不存在。

​​
+0

這會讓你檢測何時單擊元素,而不是創建元素。 (這可能是實現OP所需要的一種方式,或者它可能不是,但它不是被問到的。) – millimoose

+0

我的不好,現在編輯答案...... :) – greg84

相關問題