0

コンセプトをクリアするのに苦労しています。次のコードスニペットがあるとします。

$('a.classA').on('click', function(){
  // something do here
});

$('a.classB').on('click', function(){
  // something do here
  $('a.classA').trigger('click');
  // rest of the code
});

Javascriptが順番に実行されることはわかっています。したがって、メソッドが実行中のclickイベントに対応する場合、のイベントをa.classBプログラムでトリガーすると、現在のメソッドの実行が一時停止し、のイベントが終了すると、残りのコードが実行されますか?または、メソッドは別のスレッドなどで実行されます。ただし、Javascriptではスレッド化は利用できません。clicka.classAclicka.classA

4

2 に答える 2

2

非同期トリガーsetTimeoutを作成するために使用できます。

$('a.classB').on('click', function(){
  // something do here
  setTimeout(function(){
  $('a.classA').trigger('click');
  },1);
  // rest of the code       
});
于 2012-12-26T15:02:38.990 に答える
2

「クリック」のトリガーは同期操作であるため、事実上、関数呼び出しを行うようなものです。現在のイベント ループが完了した後に操作を実行する場合は、0 ミリ秒の遅延でタイムアウトを使用できます。

于 2012-12-26T15:03:15.910 に答える