1
这个工作,timeListener
每次都被删除。removeEventListener没有删除功能
var timeListener;
var setPause = function (time) {
var video = $("video").get(0);
timeListener = function(){
if (video.currentTime >= time && video.currentTime < (time + 0.3)) {
video.pause();
}
}
video.addEventListener('timeupdate', timeListener);
video.removeEventListener('timeupdate', timeListener, false);
};
只有它不是我想要的,因为我显然不想立即删除事件侦听器。我希望它能够做到这一点,然后在加载下一个视频时删除旧的侦听器。
然而,当我做到这一点
var timeListener;
var setPause = function (time) {
var video = $("video").get(0);
timeListener = function(){
if (video.currentTime >= time && video.currentTime < (time + 0.3)) {
video.pause();
}
}
video.removeEventListener('timeupdate', timeListener, false);
video.addEventListener('timeupdate', timeListener);
};
removeEventListener
不工作,我结束了与连接了多个监听器的视频标签。
这是我的理解,你必须存储一个引用的功能,以便完全相同的功能正在被删除作为一个被添加。我认为这两位代码之间的唯一区别在于后者中time
的值已改变,因为setPause
被称为第二次,并且由于第一个实例已关闭访问time
的不同值,因此将其视为不同,并没有被删除。我怎样才能解决这个问题?
在这里有同样的问题,但我没有按照你的思路 – RollRoll