2013-07-19 7 views
6

私がやりたいことはある:onYouTubeIframeAPIReady jQueryの.ready(文書)内部

  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()

答えて

6

onYouTubeIframeAPIReadyとして機能する必要があります。私はjQueryの文書準備コールバックでそれをバインドすることはできません。私が見る回避策の1つは、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

準備 文書の後に解決されるのを待ちます
関連する問題