我想讓我的代碼更清潔一些,所以我想在它自己的方法中使用很長的函數。如何在jQuery中調用函數?
現在我有
$('#Id').submit(function()
{
// lots of code here
});
現在我想打破它像
$('#Id').submit(MyFunction);
function MyFunction()
{
// code now here.
}
,但我需要一些PARMS通入MyFunction的。所以我試了
$('#Id').submit(MyFunction(param1, param2));
function MyFunction(param1, param2)
{
// code now here.
}
但是當我這樣做的時候什麼都行不通。 Firebug向我展示了一些關於F沒有被定義或者某些東西的巨大屁股錯誤。所以我不確定我需要做些什麼才能使它工作。
感謝,似乎已經完成了帽子戲法。任何你不能馬上傳遞的理由? – chobo2 2009-08-23 06:39:07
那麼,你在做什麼是建立一個匿名函數。我認爲你可以馬上傳遞它(就像你的第二個例子那樣),但是當你需要更多的參數時(從編寫代碼的上下文中,而不是方法的調用),那麼你需要像這樣傳遞它們(因爲你不負責.submit調用,實際上是你的調用) – 2009-08-23 06:42:19
@ chobo2:因爲沒有魔法,如果你寫'foo.submit(MyFunction(one,two))',那麼你就*調用* 'MyFunction'就在那裏,並且(假設它不首先崩潰)嘗試將它的返回值傳遞給'submit'。 – hobbs 2009-08-23 09:08:14