2012-01-31 15 views
3

JQueryで.ready()関数が疑わしいです。特に、誰かが文書readyイベントにいくつかのハンドラをバインドしている状況を考えると、私は

$(document).ready(function(){ /* my code here */ }) 

が、これは以前に登録されたハンドラを上書きします実行、または唯一のイベントに新しいもの(鉱山)を追加しますか?

ありがとうございます

+1

イベントが追加されます。 – jwatts1980

+3

これは、あなた自身が簡単に理解できたことです: '$(func1); $(func2); ' –

答えて

3

は、合意されました。あなたは好きなだけ何度でもその機能を使うことができます。ここにJQueryのドキュメントがあります。

http://docs.jquery.com/Tutorials:Multiple_ $(ドキュメント).ready()クリックのようなバインドすべてと一緒に

はすべての関数、$(ドキュメント).ready()、$(ウィンドウ).LOAD()スタックに追加されます。この方法で、$(document).readyをすべてのjavaascriptファイルで使用できます。

0

これはスタックにプッシュされますので、オーバーライドしません。

1

いいえ、あなたのハンドラをセットに追加します。

2

jQuery.readyでハンドラが追加されている場合、新しいハンドラが既存のハンドラに追加されます。 DOMを介して直接追加された場合は、上書きされます。

0

jQueryでバインドするすべてのイベントハンドラと同様に、それは要素/イベントのイベントハンドラのキューに追加されます。

jQueryのは、同じ要素に添付イベントハンドラの実行を停止するevent.stopImmediatePropagation()がありますhttp://api.jquery.com/event.stopImmediatePropagation/

3

答えは:このイベントのイベントハンドラのセットに追加されます。

$(document).ready(function(){alert('test1');}); 
$(document).ready(function(){alert('test2');}); 
0

これにより、新しい関数がハンドラスタックに追加されます。さらに、DOMが初期化された後に実行されると、その関数は即座に実行されます。

関連する問題