2012-01-25 3 views
1

JavaScriptが2つのイベントを同時に処理しないようにするにはどうすればよいですか? この場合、document.addEventListener('keydown',function(e) {},false) などのイベントハンドラが宣言されていますが、現在のイベントハンドラで終了するまでハンドラでイベントを処理しないようにします。どうすればイベントハンドラが複数のイベントを同時に処理するのを防ぐことができますか?

答えて

3

Javascriptはシングルスレッドなので、現在のイベント処理は次のイベントがトリガーされる前に終了します。一度に1つのイベントだけが処理されることを保証するために何もする必要はありません。

あなたはこれらの他の記事からこのトピックについての詳細を学ぶことができます。

How does JavaScript handle AJAX responses in the background?が(イベント・キューは、JavaScriptで操作する方法を説明します)同時イベントとして何が

Can JS event handlers interrupt execution of another handler?

Race conditions with JavaScript event handling?

0

ありません取り扱い。イベントの順序は、どのブラウザが使用されているかによって異なります。キャプチャまたはバブリングモデルのいずれかでイベントを登録する方法を決定するか、w3cモデルで両方のメッセージを使用するかはあなたが決定します。

たとえば、W3cモデルでは、W3cモデルで発生したイベントは、ターゲットに到達するまでキャプチャされ、その後再びバブリングを開始します。

イベントをキャプチャフェーズまたはバブリングフェーズのいずれかに登録するには、addEventListner()メソッドを使用します。

関連する問題