有没有办法确认revmoveEventListener是否成功?我正在将视频元素用于“正在播放” /“暂停”事件。我试图实现的行为似乎不一致。这是我如何使用它的一个例子。
var playListener = function(){
console.log("video is playing")
}
videoElement.addEventListener("playing", playListener)
我代码中的其他地方
videoElement.removeEventListener("playing", playListener)
在我使用removeEventListener并传递视频元素ID的地方可以使用playListener,因此它与我添加事件侦听器的videoElement相同。
我想知道是否可以执行某种console.log或某些操作来确认removeEventListener正常工作。
最佳答案
不幸的是,当removeEventListener
方法没有成功删除事件侦听器时,它不返回任何内容或引发错误。也没有JavaScript方法可以访问当前为给定元素设置的事件侦听器。
就调试问题而言,大多数现代浏览器的开发人员工具确实都提供了查看事件侦听器的功能。您可以在代码中放置debugger
语句(或设置断点)以在调用removeEventListener
之前立即暂停执行:
debugger;
videoElement.removeEventListener("playing", playListener);
到达断点并暂停执行后,请从Chrome开发工具的“元素”标签中检查事件监听器,以验证当前是否设置了事件监听器:
您还可以在Firefox开发工具的“检查器”选项卡中找到事件侦听器:
确认当前已设置事件侦听器后,返回调试器(Chrome“源”选项卡/ Firefox“调试器”选项卡)并逐行浏览代码(F10)。
拨打
removeEventListener
后,请返回并再次检查事件监听器。如果成功,则不应再设置事件监听器。调试完成后,您可以继续执行代码(F8)。关于javascript - 我如何知道removeEventListener成功?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34079323/