我无法清除一个概念;说我有以下代码片段:
$('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中没有线程化。
答案 0 :(得分:2)
您可以使用setTimeout
制作异步触发器:
$('a.classB').on('click', function(){
// something do here
setTimeout(function(){
$('a.classA').trigger('click');
},1);
// rest of the code
});
答案 1 :(得分:2)
触发“点击”是一种同步操作,因此它实际上就像进行函数调用一样。如果您希望在当前事件循环完成后执行操作,则可以使用延迟为零毫秒的超时。