У меня есть следующие script
, который получает все video
элементы на данной странице, а затем применяет playing
им событие:addEventListener «играет» только один раз.
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]);
}
Теперь, когда я запускаю страницу и нажмите на видео 1, например, я вижу percentComplete
быть зарегистрировался на console log
, однако, когда видео 1 заканчивается, и я нажимаю видео 2, ничего не записывается в console
, кажется, что этот addEventListener
применяется только к первому клику, который можно щелкнуть, может кто-то объяснить, почему и как я могу это разрешить, чтобы он срабатывал каждый раз, когда воспроизводится видео?
Вы, вероятно, должны предоставить нам демонстрационную версию (StackSnippet® или скрипку), воспроизводящую проблему, потому что ваш фактический код должен работать; один из @gyre должен работать тоже * (теперь, когда он/она исправил свою опечатку) *, и вы также можете просто использовать 'this', но, я думаю, никакое альтернативное решение не устранит основную проблему, которая не видна в ваш блок кода. – Kaiido