Dies ist eine Frage ähnlich how to pass arguments to addeventlistner Aber das Szenario ist ein bisschen anders, indem Sie Youtube Player API verwenden.So erhalten Sie die Quelle oder ID von youtube player onstatechange Callback
So habe ich mehr YouTube-Player auf der gleichen Seite, mit swfobject:
swfobject.embedSWF("http://www.youtube.com/v/"+video_id+"?enablejsapi=1&version=3&modestbranding=1&theme=light&color=white&autohide=1&controls=1&showinfo=0&iv_load_policy=3&autoplay=0&playerapiid=<%= "ytPlayer#{index}" %>", "<%= "ytPlayer#{index}" %>", "500", "280", "8", null, null, params);
Wo ich Rubin bin mit der YTPlayer Objekt-ID zu erzeugen. Und ich höre das Ereignis onStateChange in einer anderen Funktion.
ytplayer.addEventListener("onStateChange", "onytplayerStateChanged");
function onytplayerStateChanged(newState) {
if(newState == -1){
//unstarted
}else{
debugger;
}
}
Aber das Problem ist, ich kann nicht wissen, aus welchem ytPlayer dieses Ereignis stammt. (finde die Quelle des Aufrufers in der onytplayerStateChanged Funktion) Da ich dieses Ereignis nur abfangen kann, indem ich die genaue Implementierung dieser Struktur befolge. Ich habe versucht, die Implementierung auf This one, aber es wird nicht mehr das Ereignis abfangen.
Können Sie dies in einer jsfiddle setzen? Ich bin nicht mit der YouTube-API vertraut, aber es sieht so aus, als könnte sie durch Ändern des Bereichs behoben werden. – devnill
vielleicht missverstehe ich die Frage, aber es klingt, als ob du mehrere Ereignis-Listener für jeden uniqe-Spieler brauchst, anstatt nur einen zu haben. –