Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
YouTube Javascript API onstateChange事件问题_Javascript_Jquery_Youtube Api - Fatal编程技术网

YouTube Javascript API onstateChange事件问题

YouTube Javascript API onstateChange事件问题,javascript,jquery,youtube-api,Javascript,Jquery,Youtube Api,我的javascript: function onYouTubePlayerReady() { playerObj = document.getElementById("player_embed"); playerObj.addEventListener("onStateChange", test); // Make sure the document is loaded before any DOM-manipulation $(document).ready(functio

我的javascript:

function onYouTubePlayerReady()
{
  playerObj = document.getElementById("player_embed");
  playerObj.addEventListener("onStateChange", test);

  // Make sure the document is loaded before any DOM-manipulation
  $(document).ready(function() {

      // Update player information every 500ms
      setInterval(updatePlayerInfo, 500);

  });
}

function test(newState)
{
    alert(newState);
}

我的视频加载正确,我可以通过javascript控制它们。然而,onStateChange事件似乎从未触发。当我播放/停止/暂停视频等时,它不会发出警报。有解决方案/类似问题的人?

必须将函数名作为字符串传递给
addEventListener

playerObj.addEventListener("onStateChange", "test");

必须将函数名作为字符串传递给
addEventListener

playerObj.addEventListener("onStateChange", "test");

此格式适用于JQuery,但逻辑相同,请在onYouTubePlayerReady中创建一个函数以传递playerId

$(document).ready(function() {              
    onYouTubePlayerReady = function(playerId) {
        eventHandler=function(state){onStateChangeID(state,playerId);}
        playerObj = document.getElementById("player_embed");
        playerObj.addEventListener('onStateChange','eventHandler',false);
    }
    onStateChangeID=function(newState,playerId) {
        console.log("onStateChange: ("+playerId+") " + newState);
    }
});

此格式适用于JQuery,但逻辑相同,请在onYouTubePlayerReady中创建一个函数以传递playerId

$(document).ready(function() {              
    onYouTubePlayerReady = function(playerId) {
        eventHandler=function(state){onStateChangeID(state,playerId);}
        playerObj = document.getElementById("player_embed");
        playerObj.addEventListener('onStateChange','eventHandler',false);
    }
    onStateChangeID=function(newState,playerId) {
        console.log("onStateChange: ("+playerId+") " + newState);
    }
});

看起来我需要RTFM。谢谢。看来我需要RTFM。谢谢