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