$(document).ready();について
jQuery使用時に以下の書き方をすると、どれを使ってもDOM構築後のタイミングで実行したい処理を実行できる。
$(document).ready(function(){ /*実行したい処理*/ }); $().ready(function(){ /*実行したい処理*/ }); $(function(){ /*実行したい処理*/ });
以下のように複数回実行した場合は$(function(){/**/});を実行した順に、
中の関数が実行されるので以下の場合は、DOM構築後にconsoleに改行を挟んで1,2,3と順番に出る。
$(function(){ console.info(1); }); $(function(){ console.info(2); }); $(function(){ console.info(3); });
自信がないので、一応、コードの該当箇所を確認
- jQuery.fn.ready 2282-2297
- jQuery.ready 2304-2324
- bindReady 2329-2387
- DOM構築後のタイミングでjQuery.ready関数を実行するようにイベントを登録するなどする(一度だけ)。
「$(function(){/**/});を実行した順に、中の関数が実行される」というのは確認できた。
「documentをthis、jQueryを第一引数として実行される」ことは初めて知ったがどうも使いどころが思い浮かばない。
追記2008/09/16
bindReadyについては第10回 jQueryライブラリ(2183行目~2364行目):jquery.jsを読み解く|gihyo.jp … 技術評論社が詳しい。