【问题标题】:How can I pass data to the onStateChange event handler with Youtube iframe API如何使用 Youtube iframe API 将数据传递给 onStateChange 事件处理程序
【发布时间】:2017-02-28 01:37:29
【问题描述】:

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

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

因为列表包含来自 Vimeo 和 YouTube 的视频,我想在这个对象中处理这两个 APIS。在里面我有这样的功能:

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

问题

this 现在绑定到来自 YouTube API 的事件,我丢失了我的对象。我不知道,如何将我的对象实例与事件一起传递给事件处理程序?!里面有些东西我需要进一步的步骤,我该如何取回它?

【问题讨论】:

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


    【解决方案1】:

    只需像这样将上下文绑定到“自我”:

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

    它会在 YTonStateChange 回调中将“this”值强制为“self”。希望对您有所帮助;)

    【讨论】:

      猜你喜欢
      • 2014-08-28
      • 2015-11-07
      • 1970-01-01
      • 2011-05-02
      • 1970-01-01
      • 1970-01-01
      • 2012-08-30
      相关资源
      最近更新 更多