[英]How do I know that removeEventListener was successful?
Is there a way to confirm that removeEventListener
was successful?有没有办法确认
removeEventListener
成功? I'm using it on a video element for the "playing"/"pause" event.我在“播放”/“暂停”事件的视频元素上使用它。 The behavior I'm trying to achieve seems to be inconsistent.
我试图实现的行为似乎不一致。 Here is an example of how I'm using it.
这是我如何使用它的示例。
var playListener = function(){
console.log("video is playing")
}
videoElement.addEventListener("playing", playListener)
Somewhere else in my code在我的代码中的其他地方
videoElement.removeEventListener("playing", playListener)
playListener
is available where I'm using removeEventListener
and I'm passing around the video element's id so it is the same videoElement
I added the event listener to. playListener
在我使用removeEventListener
地方可用,并且我正在传递视频元素的 id,因此它与我添加事件侦听器的videoElement
相同。
I want to know if I can do some kind of console.log
or something to confirm that the removeEventListener
worked.我想知道我是否可以做某种
console.log
或其他东西来确认removeEventListener
工作。
Unfortunately, the removeEventListener
method doesn't return anything or throw an error when it does not successfully remove an event listener.不幸的是,
removeEventListener
方法在没有成功删除事件侦听removeEventListener
不会返回任何内容或抛出错误。 There's also no JavaScript method to access what event listeners are currently set for a given element.也没有 JavaScript 方法来访问当前为给定元素设置的事件侦听器。
As far as debugging your issue, most modern browser's developer tools do provide the capability to view event listeners.至于调试您的问题,大多数现代浏览器的开发人员工具确实提供了查看事件侦听器的功能。 You can put a
debugger
statement in your code (or set a breakpoint) to pause execution immediately before you've called removeEventListener
:您可以在代码中放置
debugger
语句(或设置断点)以在调用removeEventListener
之前立即暂停执行:
debugger;
videoElement.removeEventListener("playing", playListener);
Once the breakpoint is reached and execution is paused, check the event listeners from Chrome Dev Tools' Elements tab to verify that your event listener is currently set:到达断点并暂停执行后,从 Chrome Dev Tools 的 Elements 选项卡检查事件侦听器以验证您的事件侦听器当前是否已设置:
You can also find event listeners in Firefox Dev Tools' Inspector tab:您还可以在 Firefox Dev Tools 的 Inspector 选项卡中找到事件侦听器:
After verifying that your event listener is currently set, go back to the debugger ( Chrome "Sources" Tab / Firefox "Debugger" Tab ) and step through the code ( F10 ) line by line.确认您的事件侦听器当前已设置后,返回调试器( Chrome "Sources" Tab / Firefox "Debugger" Tab )并逐行执行代码 ( F10 )。
After your call to removeEventListener
is made, go back and check your event listeners again.在您调用
removeEventListener
之后,返回并再次检查您的事件侦听器。 If it was successful, your event listener should no longer be set.如果成功,则不应再设置您的事件侦听器。 Once you're done debugging, you can then resume code execution ( F8 ).
完成调试后,您可以恢复代码执行 ( F8 )。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.