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

时间:2013-04-10 11:02:00

标签: javascript jquery asynchronous event-handling synchronous

事件处理程序是否在JavaScript中同步或异步执行? 这是JS bin,它显示事件处理程序是同步执行的。

代码:

$('#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 个答案:

答案 0 :(得分:15)

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

答案 1 :(得分:9)

某些事件处理程序是同步执行的,而其他事件处理程序是异步执行的。 见DOM-Level-3-Events