2010-12-17 79 views
17

它多少次允许有一个页面上宣布了jQuery文档准备功能,即:我可以在页面上声明多少次jQuery的文档就绪函数?

$(function() { ... }); 

$(document).ready(function() { ... }); 

是两者之间有什么区别?

如果允许多于一个,他们是否按声明的顺序进行激活?

+1

42 ...或者:对于同一元素,您可以具有'$(element).click(function(){...})'的次数;) – 2010-12-17 14:27:28

回答

16

一:两者没有区别。

报价:

All three of the following syntaxes are equivalent: 

$(document).ready(handler) 
$().ready(handler) (this is not recommended) 
$(handler) 

两个:如你愿意,你可以有很多人,他们将在该$()$(document).ready()功能的执行顺序执行。 (即每个处理程序被添加到队列中)

+8

观察:当OP询问“有多少”时,最好不要以“一”开始答案。 – 2014-05-15 03:13:11

13

尽可能多的你需要。

文档就绪函数增加了基本上是事件队列的功能 - 这些声明中的函数将全部在document.ready事件中执行,或者在事件已经按照声明的顺序立即执行时执行。

2

尽可能多的时间,你喜欢。他们按照声明的顺序开火。

$(document).ready()将在文档准备就绪时(当它全部由浏览器加载时)触发。一旦脚本的这部分执行,另一个就会触发。

+1

*“他们按照声明的顺序进行了激活。”*不,他们按照* execution *的顺序进行激活(执行'ready'或超载'$'函数的顺序)。你可以*声明*你的功能,你传递到那些地方。 (小的一点,但精度可以真正与这些东西有关。)http://jsbin.com/ulevi3 – 2010-12-17 14:27:40

+0

'$(function(){...})'实际上等价于'$(document).ready( function(){...})' – 2010-12-17 14:28:18

+0

*其他* *?哪一个呢?第一个?它完全一样,只是简短的语法。 – 2010-12-17 14:29:54

相关问题