JS - video.play()只播放几秒钟然后停止,控制台没有错误

时间:2017-12-07 03:28:43

标签: javascript html

play()函数直到最后才播放视频,evcentlistener关闭,在控制台中我没有错误可以帮助我。

以下是完整版:
https://codepen.io/apistol/pen/LOgaWw?editors=1010

var video = document.getElementById("bgvid");
var fclick = document.getElementById("first-click");
var pauseButton = document.querySelector(".pause-button");

function addShowClass() {
  var element = document.getElementById("fclick");
  element.classList.add("display-inherit");
}

function vidPlay() {
  video.play();
}
video.addEventListener("timeupdate", function() {
  if (this.currentTime >= 5) {
    this.pause();
    addShowClass();
    this.removeEventListener("timeupdate", arguments.calee);
  }
});
pauseButton.addEventListener("click", function() {
  if (video.paused) {
    video.play();
    pauseButton.innerHTML = "Pause";
  } else {
    video.pause();
    pauseButton.innerHTML = "Paused";
  }
})

1 个答案:

答案 0 :(得分:0)

修正了它。

var video = document.getElementById("bgvid");
var fclick = document.getElementById("first-click");
var pauseButton = document.querySelector(".pause-button");


function addShowClass() {
   var element = document.getElementById("fclick");
   element.classList.add("display-inherit");
}

function vidPlay() {
         video.play();
 }



video.addEventListener("timeupdate", function() {  
  if(this.currentTime >= 5.00 ){
      this.pause();
      addShowClass();
      this.removeEventListener("timeupdate", arguments.callee);
    }
});

pauseButton.addEventListener("click", function() {

  if(video.paused) {
    video.play();
    pauseButton.innerHTML = "Pause";
  } else {
    video.pause();
    pauseButton.innerHTML = "Paused";
  }

})

你的尝试没有错。你刚才有一个错字:

你写了

this.removeEventListener("timeupdate", arguments.calee);

但它应该是

this.removeEventListener("timeupdate", arguments.callee);

(注意被调用者中的双l)

这就是removeEventListener无法删除事件的原因。我不知道为什么它在控制台中没有告诉你......