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

在 JavaScript 中事件处理程序是同步执行还是异步执行?这是 JS bin 显示事件处理程序是同步执行的.

Are event handlers executed synchronously or asynchronously in JavaScript? Here is JS bin which is showing that event handler is executed synchronously.

代码:

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

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

输出:

Inside click handler
Outside click handler

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

This means if we trigger an event, the code below it won't be executed unless all the event handlers are executed. Am I right ?

带有多个事件处理程序的Bin

推荐答案

没错.所有事件处理程序都是按绑定顺序同步触发的.

That's correct. All event handlers are fired synchronously and in order of binding.

相关文章