2013-04-10 33 views
13

JavaScriptでイベントハンドラが同期または非同期で実行されていますか? JS binは、イベントハンドラが同期して実行されていることを示しています。JavaScriptでのイベントハンドラの非同期または同期呼び出し

コード:

$('#toclick').bind('custom', function() { 
    for (var i=0; i<100000; i++) {} 
    console.log('Inside click handler'); 
}); 

$('#toclick').trigger('custom'); 
console.log('Outside click handler'); 

Output: 
Inside click handler 
Outside click handler 

これは、私たちがイベントをトリガする場合は、すべてのイベントハンドラが実行されない限り、それ以下のコードが実行されないことを意味します。私は正しい?

Bin with multiple event handlers

+2

すべてのイベントが同期しています。また、イベントの伝播を見てみたいかもしれません。http://www.quirksmode.org/js/events_order.html – Ejaz

答えて

13

これは正しいです。すべてのイベントハンドラは、バインドの順に同期して起動されます。

+0

おかげでおかしくなりました!ちょうど混乱しました。明確化のためにありがとう。 – sachinjain024

8

一部のイベントハンドラは同期的に実行され、その他のイベントハンドラは非同期に実行されます。 DOM-Level-3-Events

+2

有用な情報をありがとう。副題では、リンクのみの回答はお勧めできません。答えにさらに情報を入れてみてください。とにかく、ありがとう!! – sachinjain024

関連する問題