javascript - 向类或单个元素添加回调

标签 javascript jquery performance

我使用 JQuery,并且我有一个按钮集合,所有这些按钮都有类 btnClass。其中一些(或全部)会根据某些变化的条件重复切换可见/不可见。

我想在单击任何这些按钮时向单击事件添加回调。我有两个选择:

  1. 使用类选择器静态地预先向所有这些添加回调:$(".btnClass").on("click", function(e) { ... });
  2. 或者当按钮切换可见时动态地单独添加回调:btn.toggle(true).on("click", function(e) { ... });<

就性能而言,哪个更好,为什么?还有其他方法比这两种方法更好吗?

最佳答案

就性能而言,请使用事件委托(delegate)。与这两个选项相比,它具有更好的加载性能,因为单个处理程序仅在已知且现有的父元素上附加一次。

类似于 .on() 中提供的示例文档:

$("#wrapper").on("click", ".btnClass:visible", function(event){
  alert($(this).text());
});

关于javascript - 向类或单个元素添加回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18383192/

相关文章:

performance - 如何为不同的 HTTP 请求分配用户数?

javascript - 如何在 JavaScript 中同时检查最小值和最大值?

python - 通过python在列表中查找不同的对

javascript - 如何强制将链接另存为,下载链接,而不是忽略事件的服务人员?

javascript - 使用 Jest 测试 React/Redux 组件

javascript - 使用 toggleClass 在图像高度 250px - 450px 之间切换?

javascript - jQuery Datepicker 将结束日期限制为一周而不超过前一天

javascript - 单击菜单时应用过渡效果以减慢子菜单的打开速度

javascript - 将字符串与模板中的范围变量连接起来

jquery - 在加载所有图像之前启动 Nivo-slider