首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery事件委托和附件问题

jQuery事件委托和附件问题
EN

Stack Overflow用户
提问于 2014-03-28 22:04:35
回答 1查看 29关注 0票数 0

我有三种元素。当用户单击某个元素时,在ajax加载页面之后会出现许多新元素。我使用每个元素迭代初始元素,并向它们附加一个事件,如下所示:

代码语言:javascript
复制
tagSet.each(function(index, element){

   tagSet.eq(index).on("click",function(){alert("Alerted! Clicked")});
}

但是,使用这种方法,这些ajax创建的元素不会与事件相关联。因此,我必须对on()做一些修改,因为它可以容纳ajax创建的元素:

代码语言:javascript
复制
tagSet.each(function(index, element){

   $(document).on("click",tagSet.eq(index),function(){alert("Alerted! Clicked")});
}

它解决了事件附加到这些ajax创建的元素的问题,但也引发了另一个问题。它以这样一种方式附加事件,即页面中的所有元素都一次被该特定事件触发。我的意思是,由于我有三个元素,点击其中一个就会触发所有三个alert("Alerted!Clicke!)。问题和解决办法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-28 22:10:06

使用事件委托绑定到匹配查询的所有当前和未来项:

代码语言:javascript
复制
$(document).on("click", ".some-class-here", function(){
    alert("Alerted! Clicked")
});

.some-class-here替换为与tagSet元素匹配的选择器。然后删除对$.each的调用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22723977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档