Javascript GetElementByMore项
我使用VideoJS框架,我想知道用户何时暂停视频。当我点击“播放按钮”和视频时,视频将暂停:Javascript GetElementByMore项,javascript,jquery,html,listener,video.js,Javascript,Jquery,Html,Listener,Video.js,我使用VideoJS框架,我想知道用户何时暂停视频。当我点击“播放按钮”和视频时,视频将暂停: var vjs = document.getElementById("really-cool-video_html5_api"); // on video var vjs = document.getElementById("really-cool-video").getElementsByClassName("vjs-play-control")[0]; // click button play
var vjs = document.getElementById("really-cool-video_html5_api"); // on video
var vjs = document.getElementById("really-cool-video").getElementsByClassName("vjs-play-control")[0]; // click button play
使用Listener,查看用户是否单击此“div”:
但它只在我点击
document.getElementById(“真正酷的视频”).getElementsByClassName(“vjs播放控制”)[0]
我想要,我的监听器中有两个div。。。我无法更改HTML并告诉同名的div。。。如何创建两个元素的侦听器?您的侦听器具有相同的命名变量。尝试将第二个vjs
更改为vjsBtn
,就像这样
var vjsInnerBtn = document.getElementById("really-cool-video_html5_api"); // on video
var vjsPlayerBtn = document.getElementById("really-cool-video").getElementsByClassName("vjs-play-control")[0]; // click button play
现在你可以自由完成这项任务了
vjsInnerBtn.addEventListener("click", checkPause, false);
vjsPlayerBtn.addEventListener("click", checkPause, false);
将侦听器附加到的命名变量相同。尝试将第二个
vjs
更改为vjsBtn
,就像这样
var vjsInnerBtn = document.getElementById("really-cool-video_html5_api"); // on video
var vjsPlayerBtn = document.getElementById("really-cool-video").getElementsByClassName("vjs-play-control")[0]; // click button play
现在你可以自由完成这项任务了
vjsInnerBtn.addEventListener("click", checkPause, false);
vjsPlayerBtn.addEventListener("click", checkPause, false);
我假设jQuery对您可用,因为您已经标记了它。这使事情变得更容易,因为您只需用事件处理程序所附加的元素填充选择器:
$('#really-cool-video_html5_api, #really-cool-video .vjs-play-control').on('click', checkPause);
注意,这仍然添加了多个事件处理程序,如果您希望通过单击两个不同的元素触发相同的功能,则必须执行此操作。我假设您可以使用jQuery,因为您已经标记了它。这使事情变得更容易,因为您只需用事件处理程序所附加的元素填充选择器:
$('#really-cool-video_html5_api, #really-cool-video .vjs-play-control').on('click', checkPause);
注意,这仍然会添加多个事件处理程序,如果您希望通过单击两个不同的元素触发相同的功能,则必须执行此操作。您是否考虑将它们存储在一个数组中?像
var controls['video'] = document.getElementById("really-cool-video_html5_api"); // on video
controls['pause_btn'] = document.getElementById("really-cool-video").getElementsByClassName("vjs-play-control")[0];
//Here you add the addEvenListener with the array elements.
使用不同变量的方法是相同的,但如果要将它们附加到同一事件侦听器或使用函数,则可以迭代它们。是否考虑将它们存储在数组中?像
var controls['video'] = document.getElementById("really-cool-video_html5_api"); // on video
controls['pause_btn'] = document.getElementById("really-cool-video").getElementsByClassName("vjs-play-control")[0];
//Here you add the addEvenListener with the array elements.
使用不同变量的方法是相同的,但如果要将它们附加到同一事件侦听器或使用函数,则可以对它们进行迭代。您最好使用video.js的api来侦听暂停事件。有几种方法可以在不单击(键盘控制)的情况下暂停视频,也有几种方法可以在不单击(播放)的情况下暂停视频
您最好使用video.js的api来监听暂停事件。有几种方法可以在不单击(键盘控制)的情况下暂停视频,也有几种方法可以在不单击(播放)的情况下暂停视频
您对这两个变量都使用相同的变量名,它只会将事件侦听器添加到vjs设置为最新的变量名,使用不同的变量名我知道。。。但是我如何使用:
vjs.addEventListener(“单击”,检查暂停,false)代码>用于jQuery标记vjs1.addEventListener的两个div目的。。。vjs2.addEventListener?我只想使用1个变量,因为在我使用更多的div之后,我可以进行混淆。如果两个变量都使用相同的变量名,它只会将事件侦听器添加到vjs设置为最新的变量,使用不同的变量名我知道。。。但是我如何使用:vjs.addEventListener(“单击”,检查暂停,false)代码>用于jQuery标记vjs1.addEventListener的两个div目的。。。vjs2.addEventListener?我只想使用1个变量,因为在我使用更多的div之后,我可以使用confusionyes,我知道,但我想使用两个div做一次侦听器。。。我不知道我是否明白。两者都有不同的事件变量名,比如vjsInnerBtn。但它们都将回调函数checkPause是什么。究竟为什么您希望两者都有相同的事件变量名?听起来你需要的是既有处理函数,也有处理函数。。。。无论如何,在委派之后,您最终需要一种方法来分别引用每一个。我想这样做是因为我使用了很多getelementbyyes,我知道,但我想用这两个div做一次侦听器。。。我不知道我是否明白。两者都有不同的事件变量名,比如vjsInnerBtn。但它们都将回调函数checkPause是什么。究竟为什么您希望两者都有相同的事件变量名?听起来你需要的是既有处理函数,也有处理函数。。。。无论如何,在委派之后,您最终需要一种方法来分别引用每一个。我之所以要这样做,是因为我使用了很多GetElementBy,因为我已经尝试过了。。。但它不起作用。。。我有一个错误:UncaughtTypeError:无法读取未定义的属性“w”,我使用VideoJS APIi,我已经尝试过了。。。但它不起作用。。。我有一个错误:uncaughtypeerror:无法读取未定义的属性“w”,我使用VideoJSAPI