我有以下$("#<%=TextBox2.ClientID %>").pikaday({
format: 'DD/MM/YYYY',
disableWeekends: true,
firstDay: 1,
disableDayFn: function(date){
// Disable Monday and Tuesday
return (date.getDay() === 1 || date.getDay() === 2);
}
});
获取给定网页上的所有script
元素,然后向其应用video
个事件:
playing
现在,当我运行页面并点击视频1时,我看到var video = document.getElementsByTagName("video");
for(var i = 0; i < video.length; i++){
(function(vid) {
vid.addEventListener('playing', function(){
var percentComplete = Math.round((vid.currentTime / vid.duration) * 100);
console.log(percentComplete);
});
})
(video[i]);
}
被记录到percentComplete
,但是当视频1完成并且我点击视频2时,没有任何内容写入{ {1}},似乎这个console log
仅适用于点击的第一个视频,有人可以解释为什么以及如何解决这个问题,以便每次播放视频时它都会触发?
答案 0 :(得分:0)
尝试删除外部闭包并在侦听器中使用event.target。
var video = document.getElementsByTagName("video");
for (var i = 0; i < video.length; i++) {
video[i].addEventListener('playing', function (event) {
var vid = event.target
var progress = Math.round((vid.currentTime / vid.duration) * 100)
console.log(progress)
})
}
对于任何有兴趣的人,这里是the full list of media events。