Guy我对下面的代码感到有点困惑,在下面的代码中有两个函数然后执行第一个Function1()或Function2()?
$(document).ready(function() {
// some code here for function1()
});
$(document).ready(function() {
// other code here for function2()
});
答案 0 :(得分:3)
首先执行功能1。 jQuery将始终按照它们绑定的顺序执行事件处理程序(请记住,委托处理程序将在直接处理程序之后执行,因为它们只会在事件通过DOM冒泡时发生 - 但这不适用于此处。)
on
method docs中的括号中记录了这一点:
(绑定到元素的事件处理程序的调用顺序与它们绑定的顺序相同。)
答案 1 :(得分:1)
两者都将被执行。您正在注册文档准备好时触发的事件。您可以为给定对象注册多个事件,即使它是由相同的操作触发的。
通常情况下,我希望首先声明的代码首先触发,但我不会编写在不同块中具有依赖关系的代码,因为它很容易出错。
我会在基于组件的框架(如Wicket)中假设这样的场景,其中每个组件都可以拥有它的就绪块,但如果它们彼此独立,则您不必关心首先执行哪个。
如果您的代码中存在执行顺序问题,我建议您搜索其他方法来避免这种情况。正如其他答案已经说明的那样,你可以期待一个订单,但我不相信所有的浏览器实现,更糟糕的是,在未来的实现中。
因此,作为一般规则:保持简单,如果一个对象需要多个事件,只要它们不依赖它们就可以了,否则将它们放在同一个块中。
答案 2 :(得分:0)
第一个document.ready将首先执行。
答案 3 :(得分:0)
第一个函数1将首先执行,因为jQuery总是在编写时执行处理程序
<强>加强>
您可以根据需要拥有尽可能多的内容,并且将按照执行$()
或$(document).ready()
函数的顺序执行它们。 (即每个处理程序都添加到队列中)