javascript – 在jQuery(document).ready中的onYouTubeIframeAPIReady

前端之家收集整理的这篇文章主要介绍了javascript – 在jQuery(document).ready中的onYouTubeIframeAPIReady前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想做的是:

>等待文档呈现;
>当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()中构建玩家.

解决方法

因为onYouTubeIframeAPIReady函数必须在全局范围内,我想我们不能在jQuery的文档就绪回调中绑定它.我看到的一个解决方法是使用 jQuery deferred objects.首先我们创建一个deffered对象并在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

猜你在找的jQuery相关文章