2011-07-21 14 views
8

$(document).ready(...)の関数が複数ある場合、それらは互いに上書きされますか?議論のために、適切なコーディングがこの1つのドアの外に投げ出されているようなふりをする。

私のサイトのスクリプトファイルには$(document).ready(function() {...});があります。それから私は$(document).ready(function() {...});を使用するサードパーティのプラグインを使用します。これはすでに作成された関数を上書きするのですか、あるいはjQueryはドキュメントの準備が整うとこれらの関数をすべて "実行"しますか?

+1

いいえ、あなたがそれをたくさん使っているなら、これを覚えておいてください:http://encosia.com/dont-let-jquerys-document-ready-slow-you-down/ – Paulpro

+0

@PaulPRO - 素晴らしいリンク。私はそれについて考えなかった。 – Spidy

+0

@Spidy:あなたはこの質問を作成するときに提案された質問を見ましたか?これらの質問は既に大量にあります。それは他の約5つの質問の直接の複製です。 –

答えて

16

いいえ、お互いに優先しません。各機能が実行されます。

あなたはもちろん、簡単に自分でこれを確認することができます:http://jsfiddle.net/6jgGt/

またはjQuery code自体から理解:

ライン255はjQuery.bindReady();がライン上readyListオブジェクトを初期化し、他のものの間でどのと呼ばれているレディ機能ですreadyList = jQuery._Deferred();

と429そして、それは繰延オブジェクトの後に渡された関数がではreadyList.done(fn);を追加し、我々は、CA n行のin the done methodを参照してください。callbacks.push(elem);の配列に要素が追加されるため、各要素は個別に保存されます。

4

いいえ、お互いを上書きしません。あなたが言ったように、彼らは列に並んでいます。