2012-06-21 31 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

相关问题