1

私が持っていると言う:

<div id="name" class="button"></div>

そして、javacriptファイルで、クラスボタンとID名の両方のクリックアクションを次のように定義します。

$("#name").click(function(event){
  alert("hi");
})

$(".button").click(function(event){
  alert("bye");
})

そのdivをクリックすると、「こんにちは」が「さようなら」の上に表示されるため、「さようなら」アラートの前に「こんにちは」アラートが表示されますか?それとも、他の何かが最初に何が起こるかを決定しますか?2つの関数が異なるファイルにある場合はどうなりますか?次に、どのjavascriptファイルが最初に含まれていたか(htmlファイルの先頭近くに表示されたか)は重要ですか?jQueryはこれとは何の関係もないと思いますよね?

4

2 に答える 2

3

あなたは絶対に正しいです、それは正直にどちらが最初にバインドされているかに基づいています。あなたの場合、"#name"最初にバインドされ、次に".button"、そのため、最終的に同じ順序で実行されます。これは、ページで最初に表示されるものではなく、最初にバインドされるものに基づいています。バインディングは関数で発生する可能性があるため、関数が呼び出されるまで(明らかに)発生しませんが、関数は他のバインディングの前に宣言される可能性があります-何の意味もありません。呼び出す必要があります。別のファイルにある場合も同様です。ファイルが解析されると、実行されます。したがって、前に述べたことはこれにも当てはまります。バインディングが解析された順序(HTMLページの上部から下部)で実行される限り、それらはその順序で発生します。これが発生する理由は、jQueryがこれらのバインディングをFIFOであるスタックに格納するためです(先入れ先出し)。

于 2012-10-18T18:11:10.573 に答える
0

そのイベントが最初にバインドされたため、'hi'アラートが最初に表示されます。

したがって、イベントがバインドされている順序に基づいて発生する場合。

于 2012-10-18T18:12:11.167 に答える