2010-12-17 82 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

相關問題