javascript - 如何在Jquery中向元素添加类,然后根据该类触发事件

标签 javascript jquery

我有一些 jQuery 代码,可以以编程方式将类添加到文档就绪的元素中。我遇到的问题是如何监听该类被单击的元素。

<li><a href="#" id="btnDeleteGroup" class="disabled">Delete Node</a></li>

$(document).ready(function () {

  $('a.deleteGroup').click(function (e) {
    alert("deleteGroup"); 
  });

  $('#btnDeleteGroup').removeClass("disabled");
  $('#btnDeleteGroup').addClass("deleteGroup");

});

最佳答案

您需要使用on :

$(document).ready(function () {

  $(document).on('click', 'a.deleteGroup', (function (e) {
    alert("deleteGroup"); 
  });

  $('#btnDeleteGroup').removeClass("disabled");
  $('#btnDeleteGroup').addClass("deleteGroup");

});

这会将事件绑定(bind)到文档,然后“监听”您的选择器。最好将其绑定(bind)到比 document 更具体的内容以提高性能,即 a 标签容器。

只是为了解释一下,如果您将其绑定(bind)到文档,它将“监听”文档上发生的每个点击事件,然后说“这与我的选择器匹配吗”。如果将它绑定(bind)到容器,它只会捕获该容器上的点击事件,因此它必须处理更少的请求,从而更加高效。

另外on是在Jquery 1.7中引入的,如果您使用旧版本,它们是几个效率较低的版本,例如live 。如果您使用 1.7 或更高版本,请使用 on

关于javascript - 如何在Jquery中向元素添加类,然后根据该类触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15243584/

相关文章:

php - 如何通过 AJAX 脚本检查 HTML 文档中包含的文件是否发生更改?

jQuery 超大插件 : Placing the thumbnails in a different location

javascript - 如何将日期选择器附加到单个动态插入的输入字段?

javascript - onClick ="javascript: function(' 值')'"和onClick ="function(' 值');”有什么区别?

javascript - Angular 2 中的过滤器 ngFor 循环

javascript - VueJS v-for 循环在引用其他 ID 时中断

javascript - JSONarray 没有数组名称?

javascript - 从对象中获取唯一项

jQuery Accordion 展开所有 div

javascript - 禁用点击事件处理程序