jQuery API ドキュメントサイトからready
次の 3 つの構文はすべて同等です。
- $(document).ready(handler)
- $().ready(handler) (これはお勧めしません)
- $(ハンドラ)
宿題をした後 -ソースコードを読んで遊んだ後、理由がわかりません
$().ready(handler)
推奨されません。1 番目と 3 番目の方法はまったく同じdocument
です。
rootjQuery = jQuery(document);
...
...
// HANDLE: $(function)
// Shortcut for document ready
} else if ( jQuery.isFunction( selector ) ) {
return rootjQuery.ready( selector );
}
しかし、ready 関数は、選択されたノード要素のセレクターと対話しません。ready
ソース コード:
ready: function( fn ) {
// Attach the listeners
jQuery.bindReady();
// Add the callback
readyList.add( fn );
return this;
},
ご覧のとおり、コールバックを内部 queue( readyList
) に追加するだけで、セット内の要素を変更したり使用したりしません。これによりready
、すべての jQuery オブジェクトで関数を呼び出すことができます。
お気に入り:
- 通常のセレクター:
$('a').ready(handler)
DEMO - ナンセンスセレクター:
$('fdhjhjkdafdsjkjriohfjdnfj').ready(handler)
DEMO - 未定義のセレクタ:
$().ready(handler)
DEMO
最後に...私の質問に:なぜ$().ready(handler)
推奨されないのですか?