我有一组三个元素。当用户点击某个元素时,通过ajax加载页面之后还有许多即将到来的元素。我遍历每个初始元素和事件附加到他们这样的:jQuery事件委托和附件问题
tagSet.each(function(index, element){
tagSet.eq(index).on("click",function(){alert("Alerted! Clicked")});
}
但是,这种方法的AJAX创建的元素不会与一个事件进行安装。因此,我必须做出改变的一点点对(),它容纳了ajax创建的元素:
tagSet.each(function(index, element){
$(document).on("click",tagSet.eq(index),function(){alert("Alerted! Clicked")});
}
它解决事件附件的问题,这些AJAX创建的元素,但引出了另外一个问题。它以一种方式附加事件,使得页面的所有元素一次触发该特定事件。我的意思是,因为我有三个元素,点击其中一个会导致触发全部三个alert("Alerted!Clicke!)
。什么是问题和解决方案?
您需要将选择器作为第二参数传递给'.on'。 –
告诉我们tagSet是什么,我们将告诉你如何避免这个愚蠢的循环 – adeneo
tagSet是一个匹配集合,三个''标签 –