0

現在、私はyoutube api iframeで作業していますが、ビデオが終了したら何かをやろうとしていますが、続行するにはjavascriptでグローバル変数が必要です。だから私はつまり、IDおよび生成された特定のビデオのタイトルを得るために、私の配列のarrayJSの指標とarrayTを取得し、私のonPlayerStateChange機能で各プレイヤーを識別するために必要グローバル変数をjavascriptで更新しています

var k =0 

function onYouTubeIframeAPIReady() 
     { 
      for(j=0;j<tam2;j++) 
     { 
      var nombre="player"+j; 
      player = new YT.Player(nombre, 
      { 
      height:'300', 
      width:'580', 
      videoId:arrayJS[j], 
      events: {'onStateChange': onPlayerStateChange} 
      }); 
     k++; 
     } 
     } 

:私のコードは次のようです

function onPlayerStateChange(event) 
    { 
     if (event.data == YT.PlayerState.ENDED) 
     { 
      console.log(k); 
      $.ajax 
      ({ 
       async:true, 
       type: "POST", 
       url:'v.php', 
       data: 
       { 
        idvideo:arrayJS[k], 
        titlevideo:arrayT[k] 
       }, 
       success:function envio(deVuelta) 
       { 
        alert(deVuelta); 
       }, 
       timeout:30000, 
       error:function() 
       { 
        alert("Ocurrio un error"); 
       } 
      }); 
     } 
    } 

答えて

1

あなたがbindを試してみる:完成したイベントが、私は次の操作を実行しようとしたが、私はそれを実行したときにconsole.log変数が定義されていないと言っていますか?

function onYouTubeIframeAPIReady() 
     { 
      for(j=0;j<tam2;j++) 
     { 
      var nombre="player"+j; 
      player = new YT.Player(nombre, 
      { 
      height:'300', 
      width:'580', 
      videoId:arrayJS[j], 
      events: {'onStateChange': onPlayerStateChange.bind(null, arrayJS, j)} 
      }); 
     k++; 
     } 
     } 

function onPlayerStateChange(ary, idx, event) 
    { 
     if (event.data == YT.PlayerState.ENDED) 
     { 
      console.log(k); 
      $.ajax 
      ({ 
       async:true, 
       type: "POST", 
       url:'v.php', 
       data: 
       { 
        idvideo:arrayJS[k], 
        titlevideo:arrayT[k] 
       }, 
       success:function envio(deVuelta) 
       { 
        alert(deVuelta); 
       }, 
       timeout:30000, 
       error:function() 
       { 
        alert("Ocurrio un error"); 
       } 
      }); 
     } 
    } 
+0

ご回答ありがとうございます。私の解決策は、変数kの更新をブールの先頭に移動し、その変数を次のように使用することでした:idvideo:arrayJS [k-1] – Mvram

関連する問題