javascript中事件处理程序的异步或同步调用

javascript中事件处理程序的异步或同步调用

问题描述:

JavaScript中的事件处理程序是同步执行还是异步执行? 这是JS bin这表明事件处理程序是同步执行的。javascript中事件处理程序的异步或同步调用

代码:

$('#toclick').bind('custom', function() { 
    for (var i=0; i<100000; i++) {} 
    console.log('Inside click handler'); 
}); 

$('#toclick').trigger('custom'); 
console.log('Outside click handler'); 

Output: 
Inside click handler 
Outside click handler 

这意味着如果我们触发一个事件,它下面的代码不会,除非所有的事件处理程序执行的处理。我对吗 ?

Bin with multiple event handlers

+2

所有事件都是同步的。你可能也想看看事件传播http://www.quirksmode.org/js/events_order.html – Ejaz 2013-04-10 11:06:11

这是正确的。所有的事件处理程序都是按照绑定顺序同步触发的。

+0

谢谢怪异!只是感到困惑。感谢您的澄清。 – sachinjain024 2013-04-10 12:23:17

某些事件处理程序是异步执行的,其他事件处理程序是异步执行的。 请参阅DOM-Level-3-Events

+2

感谢您的有用信息。在旁注中,只链接答案是不鼓励的。请尝试在答案中提供更多信息。不管怎么说,多谢拉!! – sachinjain024 2014-03-01 06:47:22