如何检查一个元素是否有事件监听器,如果我在其上使用内联函数,如下面的代码.因为我有一个函数可以调用函数并添加事件监听器,但它会导致重复事件监听器导致它触发一个函数两次.所以如何检查它,以便我可以阻止它添加一个事件监听器,如果它已经存在.谢谢!:d
for (var a = 0;a<formFieldInput.length;a++) {
if(formFieldInput[a].hasAttribute("name") && formFieldInput[a].attributes.title.value !== "Valid Until") {
formFieldInput[a].addEventListener("click",function(event) {
toggleFieldList(event,"show");
});
}
Run Code Online (Sandbox Code Playgroud)
Rya*_*ner 55
没有JavaScript功能来实现这一目标.但是,您可以true在添加侦听器时以及false删除它时设置布尔值.然后在可能添加重复事件侦听器之前检查此布尔值.
可能重复:如何检查动态连接的事件监听器是否存在?
aru*_*ian 55
在Chrome Dev Tools控制台上的这一天,您可以快速执行下面的此功能,以显示已附加到元素的所有事件侦听器.
getEventListeners(document.querySelector('your-element-selector'));
Run Code Online (Sandbox Code Playgroud)
Ron*_*ton 30
你不需要.只需按照自己的意愿,可以随心所欲地拍打它.MDN解释了相同的事件监听器:
如果在具有相同参数的同一EventTarget上注册了多个相同的EventListener,则会丢弃重复的实例.它们不会导致EventListener被调用两次,并且不需要使用该
removeEventListener方法手动删除它们.
| 归档时间: |
|
| 查看次数: |
99129 次 |
| 最近记录: |