Этот код работает отлично, delight, sib и blitz это id от айфреймов с видео, записываются в свою переменную и в следующей функции при клике на определённый элемент ставятся на паузу.
function onYouTubePlayerAPIReady() {
play = new YT.Player('delight', {
events: {'onReady': onPlayerReady}
});
play2 = new YT.Player('sib', {
events: {'onReady': onPlayerReady}
});
play3 = new YT.Player('blitz', {
events: {'onReady': onPlayerReady}
});
}
function onPlayerReady(event) {
document.getElementById('bx-pager').onclick = function(){
play.pauseVideo();
play2.pauseVideo();
play3.pauseVideo();
};
$(".bx-controls-direction a").on("click", function(){
play.pauseVideo();
play2.pauseVideo();
play3.pauseVideo();
});
}
Да, я вижу что во второй функции смесь из js и jquery, но если я прописываю первую запись в стиле второй, то всё отваливается. Кстати тоже хотел бы узнать почему.
Но видео может оказаться не три, а больше. Хорошо было бы автоматом эту конструкцию делать. В следующем коде до алерта всё здорово, он вроде как выводит массив (или объект?) [«delight», «sib», «blitz»], а что дальше делать и как применить я не могу понять.
var iframe_id = [];
$("iframe").each(function (i){
iframe_id[i] = $("iframe")[i].id;
});
alert(iframe_id);
function onYouTubePlayerAPIReady() {
play = new YT.Player(iframe_id[i], {
events: {'onReady': onPlayerReady}
});
}
function onPlayerReady(event) {
document.getElementById('bx-pager').onclick = function(){
play.pauseVideo();
};
$(".bx-controls-direction a").on("click", function(){
play.pauseVideo();
});
}
Когда делал так:
$("iframe").each(function (i){
iframe_id = [];
iframe_id[i] = $("iframe")[i].id;
});
alert(iframe_id);
то возвращалось последнее значение, отлично подставлялось и работало.
Да, алерты там просто для меня.