Ключевое слово "this" с YouTube API не работает - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть четыре видео, загруженных на страницу с помощью API iframe Youtube.Я обнаружил, что если вы запускаете .stopVideo(), когда видео заканчивается так:

 player = new YT.Player('S1_iframe', {
          videoId: 'nWMpQMiWXNc',
          events: {

          'onStateChange': function(event) {
                 if (event.data == YT.PlayerState.ENDED) 
                 { player.stopVideo(); }                    
              }
      }
});

, то это «визуально» сбрасывает видео, поэтому оно выглядит так, как оно было до того, как на него щелкнули.Мне это нравится, и я хочу сделать это для каждого видео, но проблема в том, что я не хочу писать совершенно новую функцию для каждого игрока:

function(event) { 
     if (event.data == YT.PlayerState.ENDED) 
     { player.stopVideo(); }                    
                }

Должно быть лучшее решение.Есть ли способ написать что-то вроде этого:

function onPlayerStateChange(event){

        if (event.data == YT.PlayerState.ENDED) 
        { 
            this.stopVideo(); 
        }
    }

и вызвать эту функцию для каждого игрока, чтобы функция обращала внимание на конкретного игрока, который ее вызывает, и запускает .stopVideo() только для этого игрока?Ключевое слово this в вышеприведенной функции не работает.Вот кодовая ручка: https://codepen.io/Wcomp/pen/vbdLam

...