5

我知道并研究了多种绑定事件、、、.on().live()的方法.click()。我知道.live()在 1.9+ 中已弃用。我遇到的问题是将动态 DOM 元素绑定到事件。

我有一个div包含链接并分页的。链接是使用 AJAX 动态加载的。我想覆盖这些链接的绑定事件,所以我使用.unbind()并尝试了.on(). 问题是这些动态加载的链接没有绑定。我猜那是因为选择器$('#id_of_links')与前一组链接一起缓存。

问题:是否可以在任何时间点绑定页面上加载的所有元素,而无需在用户单击链接上的下一页时设置回调?

4

2 回答 2

14

对于动态添加的元素,您必须将函数绑定到它的父元素之一

$('#PARENT').on('click', '#DYNAMICALLY_ADDED_CHILD', function(){ CODE HERE });

Parent 应该已经存在于 DOM 树中...

更多信息:http ://api.jquery.com/on/

于 2013-06-03T13:54:16.137 回答
-2

您不能绑定所有元素,即使是那些尚未加载到页面中的元素,也不能没有回调方法/函数或循环进入并不断检查具有特定属性或特征的元素是否绑定了正确的函数,随着时间的推移,这可能会导致内存泄漏。

于 2013-06-03T13:53:47.997 回答