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

触发“点击”是一个同步操作,所以它实际上就像一个函数调用。如果您希望在当前事件循环完成后进行操作,您可以使用具有零毫秒延迟的超时。

于 2012-12-26T15:03:15.910 回答