我是 Javascript 编程领域的相对初学者,所以请放轻松。 :-)
我正在尝试将 eventListener
添加到页面上的各种 DOM 元素。但是,我要添加事件的一些元素已经有一个 eventListener
,我不想取代那个;我只想将我的事件添加到尚未关联事件的元素。
我浏览了一堆与addEventListener
、event.StopPropagation
、事件冒泡等相关的东西,但还没有找到任何方法完成这个。
有没有办法检测给定元素上的其他事件监听器,或者有其他方法可以到达我想要的位置?
最佳答案
您可以使用以下方法检查给定元素的 on[event] 属性是否已设置:
if (typeof(document.getElementById("element-id").onclick) == "undefined") {
// event undefined
}
if (typeof(document.getElementById("element-id").onclick) == "function") {
// event defined
}
请注意,如果使用 jQuery 等 javascript 库来定义事件(例如,通过使用 $("#element-id").click()
),这将不起作用。我建议您使用 jQuery , 你可以 handle events轻松使用它。
编辑:嗯,好吧,如果您也使用 addEventHandler,我相信它不会起作用。它仅在您使用 yourElement.onclick = anyFunction
关于javascript - 仅在没有其他监听器存在时才添加 Javascript EventListener?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2030885/