暂停按钮代码

时间:2016-05-05 18:32:16

标签: javascript

我一直收到此错误" pause_button.js:6未捕获的TypeError:无法读取属性' addEventListener' of null(匿名函数)@ pause_button.js:6"。不知道出了什么问题,但如果有人可以帮我解决这个问题,那就是代码。

var vid = document.getElementById("bgvid"),
pauseButton = document.getElementById("vidpause");
function vidFade() {
vid.classList.add("stopfade");
}
vid.addEventListener('ended', function() {
// only functional if "loop" is removed 
 vid.pause();
// to capture IE10
vidFade();
});
pauseButton.addEventListener("click", function() {
vid.classList.toggle("stopfade");
if (vid.paused) {
vid.play();
    pauseButton.innerHTML = "Pause";
} else {
    vid.pause();
    pauseButton.innerHTML = "Paused";
}
})

2 个答案:

答案 0 :(得分:0)

此错误:

  

未捕获的TypeError:无法读取null

的属性'addEventListener'

正在这里发生:

vid.addEventListener('ended', function() { /.../ });

这意味着vidnull。因此,这一行找不到匹配的元素:

var vid = document.getElementById("bgvid")

然后,修复将是一个与之匹配的元素。 (我应该假设它是一个<video>元素吗?)具体来说,当代码执行时,该元素需要存在。所以你可能没有元素,或者可能有一个元素,但代码

对比这个:

<script type="text/javascript">
    // this *won't* find the element
    var vid = document.getElementById("bgvid");
</script>
<video id="bgvid" />

用这个:

<video id="bgvid" />
<script type="text/javascript">
    // this *will* find the element
    var vid = document.getElementById("bgvid");
</script>

只需确保代码运行时元素存在,并且应该解决问题。

答案 1 :(得分:0)

第6行的vid为null。这意味着代码:

document.getElementById("bgvid")

找不到任何元素。

确保html上存在id为“bgvid”的元素,或者它是元素的正确ID。