Javascript 在这种情况下,绑定事件回调的顺序是否确定?

Javascript 在这种情况下,绑定事件回调的顺序是否确定?,javascript,jquery,Javascript,Jquery,假设我有如下代码: $("#start").click(function1); $("#start").click(function2); $("#start").click(function3); // I need function1, function2 and function3 be all executed when // the #start button on this page // is clicked, and in the order that I bind them.

假设我有如下代码:

$("#start").click(function1);
$("#start").click(function2);
$("#start").click(function3);

// I need function1, function2 and function3 be all executed when
// the #start button on this page
// is clicked, and in the order that I bind them.
当我点击
#开始
按钮时,订单是否总是function1、function2、function3?是否存在订单可能是随机的风险

谢谢

当我单击#开始按钮时,订单是否总是function1、function2、function3

对。jQuery确保了这一点,即使在不支持的浏览器上(现在大多是过时的浏览器)

只需搜索“订单”即可回答以下问题:

绑定到元素的事件处理程序的调用顺序与绑定它们的顺序相同

用一个片段来证明这一点怎么样…->

新游戏,看看是否有人能以不同的顺序获得号码:)

函数makeFn(ref){
返回函数Fn(){
控制台日志(ref);
}
}
$(“#开始”)。单击(makeFn(1));
$(“#开始”)。单击(makeFn(2));
$(“#开始”)。单击(makeFn(3))


开始
,所以如果我使用本机JavaScript API,它是随机的。如果像我在问题中所做的那样使用jQuery,它是可以保证的?除非其中一个函数中有任何异步进程there@AwQiruiGuo:不,不是随机的
addEventListener
还保证按照绑定顺序执行它们。微软的专有前身attachEvent以相反的顺序执行它们。jQuery规范化为标准。@madalinivascu:否,处理程序顺序是有保证的。当然,如果它们启动异步操作,则这些操作的完成顺序可能不同。这是无关的,这很有帮助。非常感谢你这么快的回答!9分钟后(我必须等待),我会相信你。你可以用html指定你的顺序,但是如果你想让它以特别的顺序,不管在js中定义了什么,如果我必须用JavaScript来做呢?这是一个js解决方案,只需定义你的函数1、2、3,它就会工作,很棒。第一次以这种方式看到控制台输出!一个例子不能证明什么,这是真的。。但这并不有害。也许“证明”这个词错了,也许我应该说“测试”。当然,测试跑步者是根据这个原则工作的。@Bergi是的。这就是我所困惑的。但另一个答案让我感到安全。我得到的订单不同,因为我是从下面看的:P