2011-03-14 211 views
0

之間有什麼區別之前:jQuery選擇功能

$(function() { 

    }); 

這:

function HideDiv() { 

    } 

我第一次知道是jQuery的功能和第二個是JavaScript函數。 但我不知道爲什麼它將選擇器'$'放在函數關鍵字之前。 我認爲jQuery選擇是尋找一個HTML元素,例如這樣的:

$("#loading").hide('fade'); 

找到名爲裝載的元素,並隱藏。 關於。

+1

給這個看看它的很多內容,但將極大地幫助http://jqfundamentals.com/book/index.html – stanwilsonjr 2011-03-14 15:54:41

回答

3

$是jQuery的簡寫形式,表示jQuery對象。這方面是基本上的簡寫:

 
jQuery(document).ready(function() 
{ 


}); 

,並作爲用於當在頁面加載執行碼的onDOMReady功能。您從根本上「找到」文檔元素並在完成加載後運行腳本。

第二個就是一般的功能

2

的差別是非常大的!

function HideDive(){ 

} 

創建名爲功能,您可以稍後致電爲:HideDiv

$(function() { 

}); 

有些事情會完全其它:它會註冊一個匿名功能使用jQuery,基本上是說:當頁面完成加載後,請調用此函數。

$(...);表示法是一種簡寫形式,意思是jQuery(document).ready(...)

希望這個清除它!

1

前者是一個匿名函數,在DOM被ready與jQuery交互時被調用。它是類似的:

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

後者是一個命名函數,可以通過它的範圍內的任何代碼調用。

另一個有趣功能語法爲:

(function() { 
    // ... 
})(); 

其是self-executing function

2

這兩個函數都涉及函數,但上下文有些不同。第一:

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

是兩種功能:調用和功能定義。調用的是jQuery函數本身,其別名是「$」。函數調用有一個參數,該參數是一個匿名函數。 jQuery函數將通過保存對匿名函數的引用來響應此函數調用,然後當文檔準備好時—它將調用您的函數。

第二種形式只是一個簡單的JavaScript函數定義語句。它創建一個名稱可由同一範圍內的其他代碼或任何詞法封閉的範圍調用的函數。

1

第一個函數(「jQuery函數」)在技術上仍然是JavaScript函數,因爲jQuery只是一個JavaScript庫。但是,在這個特定的情況下,這個函數對jQuery來說意味着特別的東西。具體而言,它是ready函數,意味着它將在DOM準備就緒後運行(AKA,頁面已加載)。

第二個功能是「常規」功能。這可以從JavaScript代碼的其他部分調用(包括jQuery代碼,如果您記得,它是JavaScript)。這使您可以封裝您可能反覆使用的各種操作或信息片段(而不是反覆重複)。您可以將二者結合起來,同時,這樣的:

$(function() { 
    // Call the function... 
    MyFunctionToDoSomething(); 
}); 

function MyFunctionToDoSomething() { 
    // Do stuff here. 
} 
1

首先是$(文件)。就緒速記(函數(){})雖然沒有在1.4以後的工作,我相信。我可以看到它很容易與基於語法的匿名函數混淆。

一個典型的匿名函數看起來就像沒有$的第一個例子。有關匿名函數如何工作,請參見Why do you need to invoke an anonymous function on the same line?

第二個是標準的JS函數(它也是一個可實例化的對象)。