我在页面上有一个<video>
元素:
<video id="myVideo">
<source src="vid.mp4" type="video/mp4" />
<source src="vid.ogg" type="video/ogg" />
</video>
在我的JS中,它读取:
var v = $('#myVideo')[0];
v.addEventListener('timeupdate',function(){
alert('I changed');
},false);
现在我将启动我的控制台并输入:
$('#myVideo')[0].currentTime = 2;
显示的框架会改变,但事件不会触发。根据规范,当“当前时间已更改”时,应该触发
timeupdate
事件,因此我不认为我使用了错误的事件?我使用的所有其他事件(即play
和ended
)都运作正常。有很多类似的问题,但所有这些问题似乎都是过时的错误?这是另一个错误吗(我在Chrome 17和FF10中进行了测试),还是事件结构发生了变化?或者我完全错过了其他事情?
编辑: 我刚刚注意到,只有在视频尚未播放时才会出现此问题。因此,当我执行以下操作时:
$('#myVideo')[0].play();
$('#myVideo')[0].pause();
$('#myVideo')[0].currentTime = 2;
事件将会像应该的那样触发。
<video>
元素以查看发生了什么。在控制台中键入$('#video')[0].currentTime = 1;
,视频将更新,但画布表示不会(它正在等待timeupdate
事件)。一旦视频开始播放,它就像预期的那样工作。谢谢。 - m90