3

$(document).ready()我们可以在单个 html 文件或单个 javascript 文件中使用多少个函数?

$(document).ready(function(){
     alert("first document ready");
     //do some action here
});

$(document).ready(function(){
     alert("second document ready");
     //do some action here too
});

如果我们可以使用infinite,它们将如何被调用?他们会逐行执行还是有任何算法可以调用它?

4

8 回答 8

2

在某种程度上没有限制(直到性能成为问题)。它们只是文档准备就绪时的事件侦听器。

它与 ASP.NET C# 中的 sayPage_Load事件不同


但是,出于组织目的,我通常将每个 javascript 文件限制为一个“文档就绪”功能。

于 2012-11-26T10:12:37.567 回答
2

好吧,我相信'随心所欲'。但我更愿意保持我的代码整洁。

于 2012-11-26T10:13:00.483 回答
1

您可以使用任意数量的$document.ready()功能。 请参阅此说明。

尽管有这种能力,我还是会尽可能少地使用这个函数,以避免在整个应用程序中分散在页面加载时执行的脚本。

于 2012-11-26T10:13:29.283 回答
1

您可以根据需要定义任意数量的侦听器document.ready。该事件将被触发一次,并且每个侦听器都会调用一次。

但是,附加到事件的顺序并不能保证执行的顺序。没有保证第二个document.ready会在第一个之后触发。

于 2012-11-26T10:14:06.037 回答
1

我们可以将许多侦听器附加到 java 脚本的同一事件。在执行开始导致脚本超时之前没有最大限制。:)。Java 脚本默认是单线程的。所以会一一执行。我想顺序应该是我们附加事件的顺序。但不确定。好问题。需要试试这个才能看到订单。

于 2012-11-26T10:18:39.107 回答
0

无限。

我想您可以拥有多个,并且当文档准备好时,所有这些都将被一一执行。我为点击事件尝试了同样的方法,它可以工作。

但是你为什么会做这样的事情呢?

于 2012-11-26T10:15:30.563 回答
0

“如果我们可以使用infinite,它们将如何被调用?它们会逐行执行还是有任何算法可以调用它?”

您显然不能附加无限数量的处理程序,但没有具体限制。

jQuery 将按照它们附加的顺序执行处理程序 - 在幕后 jQuery 将它自己的处理程序绑定到事件一次,并保留您提供的所有处理程序的列表。

这个事件处理代理概念适用于与 jQuery 绑定的其他事件的处理程序,而不仅仅是文档就绪,尽管文档就绪有一个特殊情况,如果您尝试在文档就绪绑定就绪处理程序,它将“立即”执行(不是真的“立即”,因为它是通过setTimeout()调用完成的,因此它是异步完成的,但足够接近)。

于 2012-11-26T10:30:03.603 回答
0

我在stackoverflow本身找到了一个非常好的答案

https://stackoverflow.com/a/1327766/1225190

这是有关它的更多参考

多个 $(document).ready()

教程:多个 $(document).ready()

于 2012-11-27T05:06:32.507 回答