当前位置: 首页 > 面试题库 >

如何检查是否存在动态附加的事件侦听器?

微生慈
2023-03-14
问题内容

这是我的问题:是否可以通过某种方式检查是否存在动态附加的事件侦听器?或者如何检查DOM中“onclick”(?)属性的状态?但是没有运气。这是我的html:

<a id="link1" onclick="linkclick(event)"> link 1 </a>
<a id="link2"> link 2 </a> <!-- without inline onclick handler -->

然后在Javascript中,将动态创建的事件侦听器附加到第二个链接:

document.getElementById('link2').addEventListener('click', linkclick, false);

代码运行良好,但是我所有检测该附加侦听器的尝试均失败:

// test for #link2 - dynamically created eventlistener
alert(elem.onclick); // null
alert(elem.hasAttribute('onclick')); // false
alert(elem.click); // function click(){[native code]} // btw, what's this?

如果单击“为2添加onclick”,然后单击“[链接2]”,则事件触发良好,但“测试链接2”始终报告为false。有人可以帮忙吗?


问题答案:

无法检查是否存在动态附加的事件侦听器。

查看是否附加了事件监听器的唯一方法是通过附加事件监听器,如下所示:

elem.onclick = function () { console.log (1) }

然后,您可以onclick通过返回!!elem.onclick(或类似方法)测试事件监听器是否已附加。



 类似资料:
  • 我正在编写一个手势/动作库,它还管理事件侦听器和触发。我已经实现了我的库,通过一个API支持手势对象设置被动侦听器,该API如下:。My lib支持多种手势,设置多个听众,包括被动和非被动。lib将确保最多只有一个真正的侦听器连接到DOM。因此,我们最多可以有2个touchstart监听器,其中一个是被动监听器,另一个不是。 我的问题和问题是,我无法检测接收到的事件是否附加了选项。我认为我可以在本

  • 问题:我正在尝试为我的应用程序创建一个组件,其他组件将使用该组件渲染表。它可能有三个可能的单元格值: 文本 HTML 组成部分 我能够呈现上面所有的值,但是我在绑定侦听器时遇到了困难。我试图实现的是这样的:传递一个要绑定到组件的方法和事件,表应该将其绑定到相应的单元格。例如: 表JSON 表组件 上面只是我正在尝试的一个片段,表循环通过传递的对象并相应地呈现。 我已经试过了 因此,解决方案1 因此

  • 问题内容: 我正在构建一个允许将本地文件拖放到div上的组件。然后是有关已删除文件的信息输出。 我的问题是我不知道如何正确地附加事件侦听器以及创建组件时。 我的App组件是我所有逻辑所在的地方(拖放和拖移的处理程序),我创建了一个单独的组件,该文件将被放置在该组件上-dropZone组件。 我尝试将事件侦听器放在App组件的dropZone标记上,如果放置了dropZone组件,则在该位置放置事件

  • 问题内容: 是否可以向所有动态生成的元素添加事件侦听器(Javascript)?我不是页面的所有者,因此无法以静态方式添加侦听器。 对于页面加载时创建的所有元素,我使用: 当页面上出现新元素时,我需要一种方法来调用此代码,但是我无法使用jQuery(在项目中无法使用elegate,on等)。我怎样才能做到这一点? 问题答案: 听起来您需要执行委派策略而又不退回图书馆。我在此处的小提琴中发布了一些示

  • 我正在制作一个用于分发的JS/PHP插件。我希望它像这样容易安装: 但是,我希望这个插件附加一个窗口调整大小侦听器,而不重写,以防有任何其他脚本也需要使用该方法。是否有类似的javascript命令?我知道这不是问题,因为这不起作用,而且MDN和W3C对于采用什么参数非常模糊。 我不想要一个回答告诉我使用或,因为这些插件不友好。

  • 在致力于提高渐进式web应用程序的性能时,我遇到了一个新功能,我发现很难理解这个概念。 什么是被动事件侦听器,在我们的项目中需要它吗?