首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用jQuery向动态添加的元素添加事件侦听器

使用jQuery向动态添加的元素添加事件侦听器
EN

Stack Overflow用户
提问于 2012-08-22 09:45:40
回答 4查看 134.9K关注 0票数 103

因此,现在,我知道为了将事件侦听器附加到dynamically添加的元素,您必须在添加元素后重新定义侦听器。

有什么方法可以绕过这一步,这样你就不必执行一整块额外的代码了吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-08-22 09:48:22

使用.on(),您只需定义一次函数,它将对任何动态添加的元素执行。

例如

$('#staticDiv').on('click', 'yourSelector', function() {
  //do something
});
票数 201
EN

Stack Overflow用户

发布于 2012-08-22 09:47:54

$(document).on('click', 'selector', handler);

其中,click是事件名称,handler是事件处理程序,就像对函数或匿名函数function() {}的引用一样

PS:如果你知道你要添加动态元素的特定节点--你可以指定它而不是document

票数 49
EN

Stack Overflow用户

发布于 2014-10-02 02:24:21

您将动态生成这些元素,因此在页面加载时应用的任何侦听器都将不可用。我已经用正确的解决方案编辑了你的小提琴。基本上,jQuery通过将事件附加到父元素并将其向下传播到正确的动态创建的元素来保存事件以供稍后绑定。

$('#musics').on('change', '#want',function(e) {
    $(this).closest('.from-group').val(($('#want').is(':checked')) ? "yes" : "no");
    var ans=$(this).val();
    console.log(($('#want').is(':checked')));
});

http://jsfiddle.net/swoogie/1rkhn7ek/39/

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

https://stackoverflow.com/questions/12065329

复制
相关文章

相似问题

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