谷歌插件 - 单个元素的监听事件被全局监听事件覆盖了怎么办?

新手上路,请多包涵

在开发一个谷歌浏览器插件,
已有的功能都是通过点击按钮实现的 : 界面内有很多按钮,每个对应不同的功能。所以直接监听了整个document的click事件。
document.addEventListener('click'...)
现在想在插件界面内加一个checkbox,发现它的监听事件没有起作用,checkbox无法勾选。
用onclick实现也不行。

document.getElementById('ispopup').addEventListener('click'...)

但是如果把document.addEventListener这一句注释掉,checkbox就可以正常勾选。
有没有人知道是什么原因?addEventListener()不是不会被覆盖吗?

document.addEventListener('DOMContentLoaded', function () {
    document.getElementById('ispopup').addEventListener('click', function (){
    /*.....*/
    });
});

document.addEventListener('click', handleButton, false)

async function handleButton (event) {
/*.....*/
}
阅读 3.2k
1 个回答

Hello,代码还再补充一点吗?试了一下没这个问题诶,你对照着看看呢

<html lang="en">
  <head>
    <title>listener</title>
    <script type="text/javascript">
      document.addEventListener("DOMContentLoaded", function () {
        document
          .getElementById("tmp")
          .addEventListener("click", function () {
            console.log("click")
          });
      });

      document.addEventListener("click", handleButton, false);

      async function handleButton(event) {
        console.log("handleButton")
      }
    </script>
  </head>

  <body>
    <input type="checkbox" id="tmp"><label for="tmp">Hello</label>
  </body>
</html>

希望能帮助到你。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题