我正在解决我遇到的一些问题(" .foo")。点击(function(){...你明白了......});通过.load()加载内容时,事件不再有效。我发现了一些让我解决问题的方法:jQuery, how to rebind html-elements after .load()
其中一条评论认为代表团使用不当,并提到了" OP的授权概念"。
我想更好地了解委托问题,而不仅仅是通过修复并继续前进。
有人可以解释或指向那些解释javascript授权概念的文章,以及" OP的授权概念是什么"?谷歌并没有多大帮助。
编辑:OP as" Original Poster"在你们指出这一点之后完全有道理,很难看出我现在错过了什么。所以,除此之外,仍然在javascript中寻找一个很好的代表团参考。
答案 0 :(得分:0)
我认为评论暗示原始海报(OP)可能没有正确使用jQuery委托事件绑定。很难说,因为原帖没有任何例子。
该帖子中的解决方案是在ajax加载完成后重新绑定所有事件。
但是,另一个解决方案是使用jQuery on事件绑定将元素绑定到DOM树中更高的永久元素,这样事件就不必在每个ajax负载上反弹。
$(document).ready(function() {
$("#containerDiv").on('click', 'button.loadedFromAjax', function() {
...handle the click event of a button that is loaded via ajax...
});
$("#someButton").on("click", function() {
$("#elementToReload").load("page-to-load.html", function() {
...no need to bind events here since they are bound already...
});
});
});
根据使用情况,与重新绑定每个负载相比,这可以获得内存和性能提升。
此jsfiddle显示了替换元素的html但不必每次都重新绑定的示例。