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