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