2009-07-11 51 views

回答

3

你讀你所撥叫(在這種情況下,ready方法),看看它期望什麼樣的價值的方法的文檔。

如果它期望一個函數,請使用第一個示例。

如果它期望一個jQuery *對象,請使用第二個示例(因爲addClass方法的返回值是一個jQuery對象)。我認爲你使用的是jQuery,因爲我認爲它是唯一具有類似功能的庫。我可能錯了,$ is a stupid name for a function

+0

大聲笑,$的東西有點迂腐。 – xenon 2009-07-11 11:27:56

0

如果該函數接受一個函數作爲參數,代碼2將無法正常工作,因爲

$('.poem-stanza').addClass('highlight'); 

不是函數的定義(這是一個語句)

創建表示函數的對象,以下語法之一應使用:

function myFunc() { 
} 

var myFunc = function() { 
} 

var myFunc = new Function("...javascript code..."); 

上述定義中的一個之後,myFunc的將持有表示的功能的對象。

0

嘿,這就是它是:d

沒有,嚴重的是,當你需要做的準備裏面的東西();或類似的方法,你使用一個。功能。其他方法接受參數。 Google文檔會爲您提供詳細信息。

0

就像其他人說的,你必須查看文檔來查看該函數接受的參數類型。然而,這裏的重要部分是:如果你有一個語句,當解釋器碰到它時它就會執行。如果您定義了一個函數並將其傳遞給就緒函數,就緒函數將決定何時執行該函數。在這種情況下,當文件準備就緒時。另一個例子是setTimeout,它需要一個函數和毫秒數作爲參數。

規則是這樣的:當你想傳遞一些代碼給其他某個函數時,你必須把它包裝在一個函數中。如果你使用(unwrapped)語句,它將被執行並且結果被傳遞給函數。

0

如果您需要回調函數,請使用函數關鍵字。當你使用像readyclick這樣的方法時,你不想讓代碼在你設置事件時運行,但是當事件發生時,所以你需要一個回調函數。

使用匿名函數就像使用前面定義的命名函數一樣。在這樣的例子中,更容易遵循發生的事情:

function onReady() { 
    $('.poem-stanza').addClass('highlight'); 
} 

$(document).ready(onReady); 
相關問題