2011-08-22 12 views
5

関数内から$(document).ready()ハンドラを使用すると、ドキュメント準備完了イベントが過去にうまくいった場合でも、その中のコードが実行されることが保証されますか?

答えて

14

はい。

jQuery readyファンクションsourceより。

// Catch cases where $(document).ready() is called after the 
// browser event has already occurred. 
if (document.readyState === "complete") { 
    // Handle it asynchronously to allow scripts the opportunity to delay ready 
    return setTimeout(jQuery.ready, 1); 
} 
+1

+1関連ソースコード。 – alex

1

はい。あなたは関数の中に置くことができ、その関数を呼び出すたびに呼び出されます。

4

はい、安全です。 jQueryにはこのようなハンドラを設定するいくつかの方法があり、唯一の "安全でない"ものは$(document).bind("ready", handler)です。 From the jQuery docs

次の構文のすべての3つは等価です:

  • $(document).ready(handler)
  • $().ready(handler)

      (これは推奨されません)も $(document).bind("ready", handler)あり
    1. $(handler)

    。これは準備完了メソッドと同様に動作しますが、 例外があります。準備完了イベントが既に発生していて、 .bind("ready")にしようとすると、バインドされたハンドラは実行されません。このようにバインドされたレディハンドラ は、上記の他の3つのメソッド によってバインドされた後に実行されます。

  • 関連する問題