【发布时间】:2020-09-05 19:07:56
【问题描述】:
var vid1 = document.getElementById("v1");
var vid2 = document.getElementById("v2");
var vidArr = [vid1,vid2];
var tempListener1 = function checkViewA(){
if(elementInView(vid1)){
playVideo(vid1);
window.removeEventListener('scroll', tempListener1); // so the video only plays once
}
}
var tempListener2 = function checkViewB(){
if(elementInView(vid2)){
playVideo(vid2);
window.removeEventListener('scroll', tempListener2);
}
}
// scroll event listeners
window.addEventListener('scroll', tempListener1);
window.addEventListener('scroll', tempListener2);
// this plays the video
async function playVideo(v){
v.play();
}
我希望能够继续添加在视图中播放的视频,而无需继续添加变量、事件侦听器。在 javascript 中,您不能删除具有带参数的函数的侦听器,这就是我将它们放入变量的原因。欢迎任何见解。
【问题讨论】:
标签: javascript html refactoring modular removeeventlistener