已经问过这个问题的各种版本,但我找不到太多涉及多个视频和Bootstrap的标签。
我需要的是让一个玩家在点击另一个标签时暂停。
<div class="row">
<div class="col-lg-12">
<ul class="nav nav-tabs" role="tablist" id="myTab">
<li class="active"><a href="#tab1" role="tab" data-toggle="tab">Tab1</a></li>
<li><a href="#tab2" role="tab" data-toggle="tab">Tab2</a></li>
<li><a href="#tab3" role="tab" data-toggle="tab">Tab3</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane fade in active" id="tab1">
<div class="embed-responsive embed-responsive-16by9">
<iframe id="video1" class="embed-responsive-item" src="//www.youtube.com/embed/7kq5f_apsuM?enablejsapi=1"></iframe>
</div>
</div>
<div class="tab-pane fade" id="tab2">
<div class="embed-responsive embed-responsive-16by9">
<iframe id="video2" class="embed-responsive-item" src="//www.youtube.com/embed/yWqG8ysc3BE?enablejsapi=1"></iframe>
</div>
</div>
<div class="tab-pane fade" id="tab3">
<div class="embed-responsive embed-responsive-16by9">
<iframe id="video3" class="embed-responsive-item" src="//www.youtube.com/embed/EVfGs78wD-c?enablejsapi=1"></iframe>
</div>
</div>
</div>
</div>
</div>
这是一个jsFiddle:http://jsfiddle.net/o4eebLp4/
答案 0 :(得分:3)
我使用本机引导程序选项卡事件找到了此解决方案。这是长时间搜索方式而不使用iframe或视频ID的任何特殊定位的最佳解决方案。
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
var iframe = $(e.relatedTarget.hash).find('iframe');
var src = iframe.attr('src');
iframe.attr('src', '');
iframe.attr('src', src);
});
答案 1 :(得分:1)
如果您在网页中有一个或多个视频,则以下操作可在您导航到其他页面时停止播放视频。这是基于@fricks答案和excellent solution来关闭上述@thekingoftruth模式中的视频。
$(function(){
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
var $iframes = $(e.relatedTarget.hash).find('iframe');
$iframes.each(function(index, iframe){
$(iframe).attr("src", $(iframe).attr("src"));
});
});
});
答案 2 :(得分:0)
你需要javascript:
$('#myTab a').click(function (e) {
var selected = $(this).parent().index();
$('#myTab a').each(function(index){
if(index != selected){
var iframe = $(".tab-content").children().eq(index).children().children().contents();
iframe.postMessage('{"event":"command","func":"pauseVideo","args":""}', '*')
}
});
});