2014-02-26 45 views
-3

我在瀏覽網站的源代碼,因爲我正在學習一些基本的Javascript。據我所知,第一部分:不明白Javascript函數的語法

function count() { 
    ... 
} 

我知道函數被調用次數,並且不帶任何參數。我不明白的下一個功能:

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

函數被稱爲「函數」?爲什麼在開始時會有'$'符號。我試過搜索互聯網,但谷歌只是忽略'$'和括號,只是搜索'功能'。

另外,還有一件事我不明白;該網站有一個按鈕,按下後可播放音頻文件。按鈕設置如下:

<a href="javascript:void()" id="button"> 
<img src="img/button.png" border="0"> 
</a> 

javascript:void()是做什麼的?

對不起,這不是一個真正的編程問題,但我試圖學習Javascript,我想我可能會看看其他人在做什麼。

+0

'$(處理程序)'檢查文檔準備處理程序的DOC,它是簡寫。即使它是'$(function(){ ... })'不只是'$(function(){ ... }' –

+0

這是一個匿名函數 - 它沒有名字 – h2ooooooo

+0

這個多次被問過; http://stackoverflow.com/questions/846585/can-someone-explain-the-dollar-sign-in-javascript – Bjorn

回答

3

$是由非常受歡迎的jQuery庫定義的函數的名稱(實際上是對其的引用)。

$()是調用$函數

括號裏面你有一個匿名函數的定義。


$(function(){ console.log('test'); }); 

幾乎是一樣的:

function nameNotImportant() { console.log('test'); } 
$(nameNotImportant); 

但它更簡潔,你沒有想到該功能的名稱。


正如您可能注意到的,nameNotImportant未被調用。對它的引用作爲參數傳遞給$函數,以完成它所需的操作,包括調用它。這正是$函數在將函數作爲參數傳遞給它時的功能:當DOM準備好與之交互時,它將調用該函數。


<a href="javascript:void()"> 

當點擊<a> nchor,由瀏覽器執行的默認操作是導航到其href屬性。如果你不想這樣做,你必須以某種方式干擾這種機制,例如通過設置href屬性來執行一些不執行任何操作的JavaScript代碼。我不認爲這是一個很好的編程的例子,但這是它的用途。

0

我假設你知道$是jQuery的別名。

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

正在經過一個匿名函數到$ function,這可能需要一個回調函數。當DOM就緒此功能運行,所以這個更詳細的形式是

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

此外,

javascript:void() 

used to simply return undefined for a URL --aka的瀏覽器不瀏覽到的網頁,當你點擊鏈接。 javascript:void()often used to allow the developer to bind JavaScript click events<a>標籤。

+0

如果javascript:void()什麼也不做,那麼點擊按鈕時播放的音頻文件如何? – user2397282

+0

@ user2397282猜測是點擊處理程序與您的「按鈕」相關聯,可能在您未向我們顯示的代碼中查找。查找'.click' – Tibos

+0

鏈接本身不做任何事情;代碼m ust已經將一些JavaScript綁定到''onclick''標籤的'事件中,可能使用jQuery。 – mc10