2012-10-05 54 views

回答

4
(function() {})(); 

線之上創建一個匿名函數,然後執行它馬上

$(function() {})(); 

假設你有jQuery的加載,線以上將導致錯誤。這部分$(函數(){})將通過一個匿名函數到jQuery的是被運行。 jQuery將返回一個Document對象給你。因爲你有結束括號(),Javascript會嘗試執行Document對象作爲函數。由於Document對象不是函數,因此會引發TypeError異常。

+0

謝謝的人很好回答! –

+0

我可以得到複選標記嗎? – richardaday

+1

「jQuery安裝」ಠ_ಠ –

0

你的第一個例子是自動執行的功能,即開始後馬上執行的定義,而第二個是由jQuery在準備好處理文檔時執行的。

爲了更好地理解爲什麼第一個模式是有用的,你可以參考this SO answer

您也可以閱讀更多關於傳遞函數的jQuery的文檔上爲.ready() function

1

從jQuery網站摘自:

許多JavaScript庫使用$作爲函數或變量名,就像jQuery不會。在jQuery的情況下,$僅僅是jQuery的別名,因此所有功能可在不使用$。如果我們需要使用另一個JavaScript庫jQuery的旁邊,我們可以以$ .noConflict()的調用返回的$控制權交還給其他圖書館:

你可以閱讀所有關於它here

這也包括在之前在thisthis stackoverflow的問題!

1

像所有其他的答案陳述

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

真的只是

jQuery(function(){ 

    }); 

,第二個會的工作是相同的,這一點,在你的榜樣其他類型的看跌期權的功能之間的差異是,首先必須從某個地方叫,那裏的jQuery的版本 - 如果jQuery是在HTML載入它會自動在文件準備好運行。

+0

請注意$()也是Prototype.js中的一個函數。不要只假定jQuery,因爲RubyOnRails(默認使用原型)也同樣受歡迎。 – slebetman

相關問題