当用于jQuery.load
将 HTML 内容动态加载到网页中时,“重新绑定”任何处理程序的最佳方法是什么?
通常你在 中绑定处理程序jQuery.ready
,但它们显然不适用于新加载的内容。这适用于在加载内容的外部和内部使用的处理程序,因此仅将它们绑定到load
成功函数中并不是很好。
当用于jQuery.load
将 HTML 内容动态加载到网页中时,“重新绑定”任何处理程序的最佳方法是什么?
通常你在 中绑定处理程序jQuery.ready
,但它们显然不适用于新加载的内容。这适用于在加载内容的外部和内部使用的处理程序,因此仅将它们绑定到load
成功函数中并不是很好。
您需要将新内容的事件委托给静态父元素,例如:
$("#myDiv").load(myUrl);
$("#myDiv").on('click', '#myElement', function() {
// do stuff when #myElement (which was part of the HTML
// returned in the load() call) is clicked.
})
这假设您使用的是 jQuery 1.7+,如果没有,请使用delegate()
:
$("#myDiv").delegate('#myElement', 'click', function() {
// do stuff when #myElement (which was part of the HTML
// returned in the load() call) is clicked.
})