3

$(document).ready()1つのhtmlファイルまたは1つのjavascriptファイルでいくつの関数を使用できますか?

$(document).ready(function(){
     alert("first document ready");
     //do some action here
});

$(document).ready(function(){
     alert("second document ready");
     //do some action here too
});

無限を使用できる場合、それらはどのように呼び出されますか?彼らは行ごとに実行しますか、それともこれを呼び出すためのアルゴリズムはありますか?

4

8 に答える 8

2

ある程度の制限はありません(パフォーマンスが問題になるまで)。これらは、ドキュメントの準備ができたときの単なるイベント リスナーです。

Page_LoadASP.NET C#の say event と同じではありません


ただし、一般的には、整理の目的で、JavaScript ファイルごとに 1 つの「ドキュメント準備完了」機能に制限しています。

于 2012-11-26T10:12:37.567 に答える
2

まあ、私は「あなたが望むだけ」を信じています。しかし、私は自分のコードをきれいに保ちたいと思っています。

于 2012-11-26T10:13:00.483 に答える
1

Javaスクリプトの同じイベントに多くのリスナーをアタッチできます。実行が開始されてスクリプトがタイムアウトするまで、上限はありません。:)。Javaスクリプトは、デフォルトでシングルスレッドです。したがって、1つずつ実行されます。順番はイベントを付ける順番だと思います。しかし、よくわかりません。良い質問。注文を確認するには、これを試す必要があります。

于 2012-11-26T10:18:39.107 に答える
1

必要なだけ多くの$document.ready()機能を使用できます。 この説明を参照してください。

この機能にもかかわらず、ページの読み込み時に実行されるスクリプトがアプリケーション全体に分散するのを避けるために、この関数の使用をできるだけ少なくします。

于 2012-11-26T10:13:29.283 に答える
1

好きなだけリスナーを定義できますdocument.ready。イベントは 1 回発生し、すべてのリスナーが 1 回呼び出されます。

ただし、イベントへの添付の順序は、実行の順序を保証するものではありません。最初の後に2 番目が起動するという保証はありませんdocument.ready

于 2012-11-26T10:14:06.037 に答える
0

無制限。

それらを複数持つことができ、ドキュメントの準備が整うと、すべてが1つずつ実行されると思います。クリックイベントについても同じことを試しましたが、うまくいきました。

しかし、なぜあなたはそのようなことをするのですか?

于 2012-11-26T10:15:30.563 に答える
0

「無限を使用できる場合、それらはどのように呼び出されますか?行ごとに実行されますか、またはこれを呼び出すためのアルゴリズムはありますか?」

明らかに文字通り無限の数のハンドラーをアタッチすることはできませんが、特定の制限はありません。

jQuery は、ハンドラーをアタッチされた順序で実行します。舞台裏で、jQuery は独自のハンドラーを一度イベントにバインドし、指定したすべてのハンドラーのリストを保持します。

このイベント処理プロキシの概念は、ドキュメント準備完了だけでなく、jQuery にバインドされた他のイベントのハンドラーにも適用されますが、ドキュメント準備完了には、ドキュメント準備完了後に準備完了ハンドラーをバインドしようとすると、「すぐに」実行されるという特殊なケースがあります (非同期で行われるように呼び出しを介して行われるため、実際には「すぐに」ではありませんsetTimeout()が、十分に近いです)。

于 2012-11-26T10:30:03.603 に答える
0

stackoverflow自体でそれについて非常に良い答えを見つけました

https://stackoverflow.com/a/1327766/1225190

ここにそれについてのいくつかのより多くの参照があります

複数の $(document).ready()

チュートリアル:複数の $(document).ready()

于 2012-11-27T05:06:32.507 に答える