javascript - 附加到子项时删除 onclick

标签 javascript jquery onclick

我有以下代码:

layoutOverlaysBldg = $("#layout-overlays-bldg")
layoutOverlaysBldg.on("click", "div", function(event) {
  var floor;
  console.log("floornum: " + this.dataset.floornum);
  floor = parseInt(this.dataset.floornum);
  ...
  $("#choose-floor").fadeOut();
  $("#choose-apt").fadeIn();
});

稍后 - 基于我从数据库中取回的数据 - 我想删除一些 .on("click", "div", ...) 中的一些div。我已经有了获得正确 div 的选择器,但我不知道如何删除点击事件。我在选择正确的 div 后尝试了 .off("click") 但它没有效果。

最佳答案

此问题是因为您使用的是委托(delegate)事件。您可以为所有子元素添加或删除事件,但不能为给定 div 选择器的单个子元素添加或删除事件。

考虑到这一点,完成所需操作的最简单方法是根据类添加事件,然后根据需要在子项上添加和删除该类。像这样:

layoutOverlaysBldg = $("#layout-overlays-bldg")
layoutOverlaysBldg.on("click", "div.clickable", function(event) {
    // your code...
});

然后您可以通过添加或删除 .clickable 类来启用/禁用子 div 上的事件。

关于javascript - 附加到子项时删除 onclick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26114239/

相关文章:

jquery - 将 Jquery onclick 事件添加到某个类中的所有链接

javascript - 如何通过 onclick 属性值查找元素?

javascript - 无法访问子节点的值,但我可以访问子节点的名称

javascript - Angular 订阅内订阅 : data doesn't load at the same time within view

javascript - 使用 jQuery 输入事件有条件地更新 <td> insideHTML

javascript - 在动态创建的 HTML 表中编写 Javascript If 条件

jquery - 点击图片时隐藏的 Youtube 自动播放

java - android :onClick use Java reflection concepts behind the scenes?吗

javascript - jQuery 队列,它是如何工作的?

Jquery nodeName 简单查询?