0

将新内容加载到页面后,更新 Javascript 事件侦听器的最佳方式是什么?我意识到如果我在将数据加载到我的提要之前添加它,我的点击监听器不起作用。为了解决这个问题,我把它放在我的 ajax 调用的 .done 回调中。

$(".likebutton").click(function(){
    //function
});

如果我将更多数据加载到同一个提要中,则单击侦听器将再次添加到之前存在的所有 .likebutton 实例中。这意味着有时我的函数会被调用 2 次甚至 3 次,具体取决于我加载新数据的次数。

我知道我可以在所有对象上删除一个侦听器,然后每次添加一个新侦听器,但我不确定这是否是最佳做法。

建议?

4

1 回答 1

7

假设您总是在特定元素中加载新内容,例如带有 id 的 div content,您可以使用该on方法将点击事件委托给该元素。

$('#content').on('click', '.likebutton', function() {
    // your code
});

示例: http: //jsfiddle.net/nxpgp/(注意每一个new.likebutton都会响应click事件)

于 2013-11-10T01:00:46.033 回答