如何使用Youtube iframe api将数据传递给onStateChange事件处理程序

时间:2016-10-18 16:57:42

标签: javascript data-binding javascript-events youtube event-handling

我正在为一个网站构建一个带有javascript的小型视频播放器。我有一个json视频列表。我用

实例化我的播放器
var Videoplayer = new myVideoPlayer(data);

因为列表包含来自vimeo和youtube的视频,所以我想在这个对象中处理两个api。我有以下功能:

setVideo(videoId)

选择并播放视频,或

markVideoAsSelected(video)

在html中添加类。

到目前为止,一切都很顺利,但我现在正在打墙。当我通过API加载Youtube播放器时,我添加了

events : {
    'onStateChange': self.YTonStateChange
}

我想要的一切都绑定到我在开头创建的 Videoplayer 实例。在州改变时,我运行:

YTonStateChange : function(e){
    var self = this
    switch(e.data){
        //Video ended code 0
        case 0:
            setTimeout(self.switchToNextVideo, 3000);
        break;
    }
}

问题

现在绑定到来自youtube api的事件,我丢失了我的对象。我不知道,我如何将我的对象实例与事件一起传递给事件处理程序?!我需要进一步的步骤,我怎么能回来?

1 个答案:

答案 0 :(得分:2)

只需将上下文绑定到“自我”'那样:

events : {
    'onStateChange': self.YTonStateChange.bind(self)
}

它会迫使这个'价值自我'在YTonStateChange回调中。希望它有所帮助;)