2011-11-13 47 views
2

是否有可能將定義的函數作爲jQuery的$(document).ready()而不是匿名函數的處理函數?

我已經做了幾個實驗,但無濟於事。其中之一在這裏:http://pastebin.com/XHKPc879

回答

4

當然,普通函數就像匿名函數一樣。

這是working fiddle

在你的例子中,你實際上調用該函數並將其返回值傳遞給文檔讀取,因爲你已經關閉了()。把它們關閉,它應該工作。

當然,如果你調用函數返回函數that works too

編輯

首先鏈接:

function foo() { 
    alert("ohai!"); 
} 

$(document).ready(foo); 

第二個鏈接:

function fooGen() { 
    return function() { 
     alert("kthxbai!"); 
    }; 
} 

$(document).ready(fooGen()); 
7

是的,這是可能的:

function pancakes() { /* Do interesting things */ } 
$(document).ready(pancakes); 

釷Ë問題與您引擎收錄:

$(document).ready(test()); 

是當你說test(),只是下降的括號,你是好了,我們在調用test功能。

+0

不僅可能,而且可以說是將代碼保存在可管理的塊中的一種好方法,並且也可以將它嵌套到超出正確邊距的位置。 :) –

+2

@WestonC等等,你的意思是如果你在它的一側打開代碼,左邊距不是一個多麼棒的圖表? –

+0

僅當您使用[空白](http://compsoc.dur.ac.uk/whitespace/)語言進行編程時。 –

0

您也可以命名您的匿名函數,所以它不是很匿名:

$(function bob(){ 
    alert('hi'); 
}); 

這是調試時偶爾有用。