我怎么知道 removeEventListener 成功了?
How do I know that removeEventListener was successful?
有没有办法确认 removeEventListener
成功了?我在“播放”/“暂停”事件的视频元素上使用它。我试图实现的行为似乎不一致。这是我如何使用它的示例。
var playListener = function(){
console.log("video is playing")
}
videoElement.addEventListener("playing", playListener)
我代码中的其他地方
videoElement.removeEventListener("playing", playListener)
playListener
在我使用 removeEventListener
的地方可用,我正在传递视频元素的 id,因此它与我添加事件侦听器的 videoElement
相同。
我想知道我是否可以做一些 console.log
或其他事情来确认 removeEventListener
有效。
不幸的是,removeEventListener
方法在未成功删除事件侦听器时不会 return 任何内容或抛出错误。也没有 JavaScript 方法来访问当前为给定元素设置的事件侦听器。
就调试问题而言,大多数现代浏览器的开发人员工具都提供查看事件侦听器的功能。您可以在代码中放置 debugger
语句(或设置断点)以在调用 removeEventListener
:
之前立即暂停执行
debugger;
videoElement.removeEventListener("playing", playListener);
到达断点并暂停执行后,从 Chrome Dev Tools 的“元素”选项卡中检查事件侦听器以验证您的事件侦听器当前已设置:
您还可以在 Firefox 开发工具的检查器选项卡中找到事件侦听器:
在确认您的事件侦听器当前已设置后,返回调试器 (Chrome "Sources" Tab / Firefox "Debugger" Tab ) 并逐行执行代码 (F10)。
调用 removeEventListener
后,返回并再次检查您的事件侦听器。如果成功,则不应再设置事件侦听器。完成调试后,您可以恢复代码执行 (F8)。
有没有办法确认 removeEventListener
成功了?我在“播放”/“暂停”事件的视频元素上使用它。我试图实现的行为似乎不一致。这是我如何使用它的示例。
var playListener = function(){
console.log("video is playing")
}
videoElement.addEventListener("playing", playListener)
我代码中的其他地方
videoElement.removeEventListener("playing", playListener)
playListener
在我使用 removeEventListener
的地方可用,我正在传递视频元素的 id,因此它与我添加事件侦听器的 videoElement
相同。
我想知道我是否可以做一些 console.log
或其他事情来确认 removeEventListener
有效。
不幸的是,removeEventListener
方法在未成功删除事件侦听器时不会 return 任何内容或抛出错误。也没有 JavaScript 方法来访问当前为给定元素设置的事件侦听器。
就调试问题而言,大多数现代浏览器的开发人员工具都提供查看事件侦听器的功能。您可以在代码中放置 debugger
语句(或设置断点)以在调用 removeEventListener
:
debugger;
videoElement.removeEventListener("playing", playListener);
到达断点并暂停执行后,从 Chrome Dev Tools 的“元素”选项卡中检查事件侦听器以验证您的事件侦听器当前已设置:
您还可以在 Firefox 开发工具的检查器选项卡中找到事件侦听器:
在确认您的事件侦听器当前已设置后,返回调试器 (Chrome "Sources" Tab / Firefox "Debugger" Tab ) 并逐行执行代码 (F10)。
调用 removeEventListener
后,返回并再次检查您的事件侦听器。如果成功,则不应再设置事件侦听器。完成调试后,您可以恢复代码执行 (F8)。