Javascript方法执行和触发事件

时间:2012-12-26 14:58:56

标签: javascript jquery javascript-events methods eventtrigger

我无法清除一个概念;说我有以下代码片段:

$('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事件正在执行时,click a.classA事件的编程触发将暂停当前方法执行以及{ {1}}事件click完成后会执行剩下的代码吗?或者该方法将在不同的线程或其他东西中执行;虽然Javascript中没有线程化。

2 个答案:

答案 0 :(得分:2)

您可以使用setTimeout制作异步触发器:

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

答案 1 :(得分:2)

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