当前位置: 首页 > 知识库问答 >
问题:

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

匡旭东
2023-08-31

在开发一个谷歌浏览器插件,
已有的功能都是通过点击按钮实现的 : 界面内有很多按钮,每个对应不同的功能。所以直接监听了整个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) {/*.....*/}

共有1个答案

艾浩广
2023-08-31

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>

希望能帮助到你。

 类似资料:
  • Blade 中提供一个方法帮助开发者可以自定义的监听应用程序运行中的一些生命周期。比如 Session 的创建与销毁,应用启动结束后等。 支持的事件类型有如下: public enum EventType { SERVER_STARTING, // 服务准备启动 SERVER_STARTED, // 服务启动成功 SERVER_STOPPING, //

  • Nutz.Ioc 容器有三种事件: 对象被创建(create事件) 对象被从容器中取出(fetch事件) 对象被销毁(depose事件) 在这三种时刻,你如果想做一些特殊的操作,比如,当一个数据源被销毁时,你希望能够关闭所有的连接, 声明一下,你想监听什么事件,以及怎么监听。 注: 如果你的对象是 "singleton: false",那么容器创建了对象后就会立即忘记它的存在。因为鬼才知道 你打算

  • 全局事件 事件监听 注解监听 以imi/src/Listener/Init.php为例 <?php namespace Imi\Listener; use Imi\Event\EventParam; use Imi\Event\IEventListener; use Imi\Bean\Annotation\Listener; /** * @Listener(eventName="IMI.IN

  • Chrome DevTools命令行API提供了多种方式来观察和检查事件监听器。JavaScript在交互式页面中起着中心作用,并且浏览器为您提供了一些有用的工具来调试事件和事件处理程序。 TL;DR 使用monitorEvents()监听某一类型的事件。 使用unmonitorEvents()停止监听。 使用getEventListeners()获取DOM元素的监听器。 使用Event List

  • sTree触发容器上的各种事件。您可以查看所有事件的列表以了解要听的内容。 要获取有关事件的更多信息,请检查其data参数。 在大多数情况下,涉及节点的情况下,您将传递整个节点对象。如果在某处获取ID字符串并想要检查该节点,则只需使用 .get_node()。内部节点对象与用于加载的JSON格式非常相似,但是具有一些额外的属性,这可能很有用:children是节点的直接子节点的children_d

  • 可以用v-on指令监听 DOM 事件,并在触发时运行一些 JavaScript 代码。 示例: <div id="example-1"> <button v-on:click="counter += 1">Add 1</button> <p>The button above has been clicked {{ counter }} times.</p> </div> var ex