Debo inicializar la lista de videos iframe de Youtube
Debido a que hay muchos videos de YouTube y la lista se puede cambiar desde el sitio de administración, debo hacerlo dinámico, que usa clase en lugar de identificación.
este es el codigo actual
const players = []; onYouTubeIframeAPIReady(0); onYouTubeIframeAPIReady(1); function onYouTubeIframeAPIReady(index) { players[index] = new YT.Player($('.wow_youtube_video')[index], { events: { 'onStateChange': onPlayerStateChange } }); } function onPlayerStateChange(event) { // play if(event.data == 1){ action = 'play'; } // pause if(event.data == 2){ action = 'pause'; } if(event.data == 1 || event.data == 2){ dataLayer.push({ 'event': 'trackEvent', 'eventDetails.category': 'videos', 'eventDetails.action': action, 'eventDetails.label': players[0].getVideoData().title // players[0] supposedly be players[index] but don't know how to pass the index balue from above function to this function 'videoName': players[0].getVideoData().title, //video name 'videoType': 'video on demand' //video type }); } }como puede ver arriba, la octava línea desde abajo
'eventDetails.label': players[0].getVideoData().title,
este código aquí el
players[0] supuestamente son players[index] pero no sé cómo pasar el valor del índice de
players[index] = new YT.Player($('.wow_youtube_video')[index], { events: { 'onStateChange': onPlayerStateChange } }); a la función onPlayerStateChange
el propósito de esto es poder llevar el valor del índice para que el código pueda ser dinámico, por lo que solo necesito poner el nombre de clase wow_youtube_video en cualquier iframe de youtube para que funcione
Cualquier ayuda se agradece, gracias
en la función onYouTubeIframeAPIReady agregar esto
players[index] = new YT.Player($('.wow_youtube_video')[index], { events: { 'onStateChange': onPlayerStateChange.bind(index) } }); ahora puede obtener index en onPlayerStateChange por
function onPlayerStateChange(event) { let index = this; console.log(index); }