Обновление глобальных переменных в javascript

в настоящее время я работаю с iframe API YouTube и пытаюсь что-то сделать, когда видео заканчивается, однако для продолжения мне нужна глобальная переменная в 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++;
         }  
        }

Поэтому мне нужно идентифицировать каждого игрока в моей функции onPlayerStateChange, то есть получить индекс моих массивов arrayJS и arrayT, чтобы получить идентификатор и заголовок конкретного видео, которое генерирует готовое событие, я попытался сделать следующее, но когда Я запускаю console.log, он говорит, что переменная не определена:

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");
                }
            });
        }
  }  

person Mvram    schedule 17.12.2016    source источник


Ответы (1)


Пробовали ли вы привязать?

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");
                }
            });
        }
  }  
person Tolgahan Albayrak    schedule 17.12.2016
comment
Спасибо за Ваш ответ. Мое решение состояло в том, чтобы просто переместить обновление переменной k в начало буклы и использовать переменную следующим образом: idvideo:arrayJS[k-1] - person Mvram; 18.12.2016