我知道并研究了多种绑定事件.on()
,.live()
,.click()
等的方法。我知道{+ 1}}已在1.9+中弃用。我遇到的问题是将动态DOM元素绑定到事件。
我有一个包含链接的.live()
并且是分页的。链接是使用AJAX动态加载的。我想覆盖这些链接的绑定事件,因此我使用div
并尝试了.unbind()
。问题是这些动态加载的链接没有绑定。我想这是因为选择器.on()
被缓存了前一组链接。
问题: 是否可以在任何时间点绑定页面上加载的所有元素,而无需在用户单击链接上的下一页时设置回调?
答案 0 :(得分:12)
对于动态添加的元素,您必须将该函数绑定到其中一个父元素
$('#PARENT').on('click', '#DYNAMICALLY_ADDED_CHILD', function(){ CODE HERE });
父树应该已经存在于DOM树中了......
答案 1 :(得分:-2)
你不能绑定所有元素,即使那些没有加载到页面中的元素,也没有回调方法/函数或循环的函数,并继续检查具有特定属性的元素或特性将具有绑定到它的适当功能,这可能会导致内存泄漏。