2016-03-10 64 views
0

我正在与它的YouTube视频,我希望有一个滑块静音所以我做了这个:的Youtube API事件仅适用于第一个元素

window.onYouTubePlayerAPIReady = function() { 
player = new YT.Player('video', { 
    events: { 
     'onReady': onPlayerReady 
    } 
}); 
} 

function onPlayerReady(event) { 
    event.target.mute(); 
} 

这工作!但仅限于第一部影片。检查jsfiddle。如果你暂停第二个视频,你可以看到第一个被静音。我试着循环的事件,但没有运气

JSfiddle

回答

1

您需要应用此为每个视频。

您还需要为iframe元素使用唯一的id值。

因此改变idvideo第一和video2第二,剧本之后

window.onYouTubePlayerAPIReady = function() { 
    player = new YT.Player('video', { 
     events: { 
      'onReady': onPlayerReady 
     } 
    }); 
    player2 = new YT.Player('video2', { 
     events: { 
      'onReady': onPlayerReady 
     } 
    }); 
} 

function onPlayerReady(event) { 
    event.target.mute(); 
} 

现在工作

更新演示在http://jsfiddle.net/gaby/mre4dvbe/2/


更新版本之后发表评论小号

window.onYouTubePlayerAPIReady = function() { 
    var videos = document.querySelectorAll('.yt-video'); 

    [].forEach.call(videos, function(video) { 
    new YT.Player(video, { 
     events: { 
     'onReady': onPlayerReady 
     } 
    }); 
    }); 
} 

function onPlayerReady(event) { 
    event.target.mute(); 
} 

这将任意数量的视频(由共享同一类yt-video

演示在http://jsfiddle.net/gaby/mre4dvbe/5/

+0

忘了提工作,但​​我不能这样做。因为iframe通过CMS加载,所以我不知道会有多少iframe,所以我不能给他们不同的类/ ID –

+0

好,那么你将不得不识别它们并应用代码。将更新答案在第二个 –

+0

@ C.Schubert你可以编辑模板,使视频也有一个类?例如'class =“yt-video”' –

相关问题