【问题标题】:onYouTubeIframeAPIReady inside jQuery(document).readyjQuery(document).ready 中的 onYouTubeIframeAPIReady
【发布时间】:2013-07-19 04:16:25
【问题描述】:

我想做的是:

  1. 等待文档呈现;
  2. 当 YouTube iframe api 准备就绪时,初始化我的自定义函数并将 YT 对象传递给它,以便我可以从内部构建播放器。

这是我到目前为止所做的。它有效,但我感觉有些不对劲。我不确定是否应该这样做。

jQuery.getScript("http://www.youtube.com/iframe_api"); // load YT api

jQuery(document).ready(function() {
  onYouTubeIframeAPIReady = function() {
    new my_custom_function().init(YT); // init my function and pass YT object
  };
});

如果有人能澄清什么是最好的方法,我将不胜感激。我确实需要从my_custom_function() 内部构建玩家。

【问题讨论】:

    标签: javascript api iframe youtube


    【解决方案1】:

    由于onYouTubeIframeAPIReady 函数必须在全局范围内,我想我们不能将它绑定到 jQuery 的 document ready 回调中。我看到的解决方法之一是使用jQuery deferred objects。首先我们创建一个延迟对象并在onYouTubeIframeAPIReady回调中解析它

     var YTdeferred = $.Deferred();
     window.onYouTubeIframeAPIReady = function() {
       YTdeferred.resolve(window.YT);
     };
    

    然后等待延迟对象在文档准备就绪

    之后被解析
    $(document).ready(function() {
      YTdeferred.done(function(YT) {
        // use YT here
      });
    });
    

    See the full example on JSFiddle

    【讨论】:

      猜你喜欢
      • 2010-12-11
      • 1970-01-01
      • 1970-01-01
      • 2014-04-20
      • 1970-01-01
      • 1970-01-01
      • 2011-05-20
      • 2010-10-02
      • 2011-07-19
      相关资源
      最近更新 更多