【发布时间】:2012-11-21 01:47:03
【问题描述】:
// now pause all active videos
$('.vid').get(0).pause();
$('.vid').get(1).pause();
$('.vid').get(2).pause();
这就是我现在所拥有的,但并不理想。我有点累了,所以我可能会遗漏一些明显的东西,但我怎么能告诉它暂停页面上所有 .vid 类的实例?
【问题讨论】:
// now pause all active videos
$('.vid').get(0).pause();
$('.vid').get(1).pause();
$('.vid').get(2).pause();
这就是我现在所拥有的,但并不理想。我有点累了,所以我可能会遗漏一些明显的东西,但我怎么能告诉它暂停页面上所有 .vid 类的实例?
【问题讨论】:
试试
$('.vid').each(function() {
$(this).get(0).pause();
});
【讨论】:
this.pause();。
没有真正需要 jQuery,ES6 方式(应该可以在大多数现代浏览器中工作......)
对于所有<video> 标签:
document.querySelectorAll('video').forEach(vid => vid.pause());
或者在你的情况下(寻找.vid类):
document.querySelectorAll('.vid').forEach(vid => vid.pause());
【讨论】:
$("video").each(function() {
$(this).get(0).pause();
});
更一般?适用于所有视频!
【讨论】:
Video.js 将页面上的所有播放器存储在 V.players 中的 Object 中,因此您可以执行以下操作。
普通 JS
for( player in window._V_.players ) {
window._V_.players[player].pause();
}
http://jsfiddle.net/3n1gm4/SNZAS/
jQuery
jQuery.each( window._V_.players, function( i, player ) {
player.pause();
});
http://jsfiddle.net/3n1gm4/cJ8jx/
普通 JS
for( player in window.vjs.players ) {
window.vjs.players[player].pause();
}
jQuery
jQuery.each( window.vjs.players, function( i, player ) {
player.pause();
});
【讨论】:
会
jQuery.each($('.vid'), pause)
工作?
【讨论】:
此选项适用于所有浏览器。这是一个简单的for 循环来获取所有视频标签,然后暂停每个标签。
var videoList = document.getElementsByTagName("video");
for (var i = 0; i < videoList.length; i++) {
videoList[i].pause();
}
【讨论】: