2011-09-25 51 views
0

這個函數在調用時如何將其轉換爲jquery匿名函數。我嘗試過,但它給我的對象預期錯誤。此外,我已經打電話到下面的 setTab()在20個文件中,所以我不能更改調用的簽名,它應該與(setTab(「Test」))相同,但實現需要更改爲匿名函數,它接受參數。如何將這個Js函數轉換爲jQuery中的匿名函數

//老JS FUNC()

function setTab(selection) { 
     $("#"+selection).css('background', '#CC0000'); 
     $("#"+selection).css('color', '#ffffff');  
    } 

// jQuery的Anonynous Func鍵

var setsTab = (function (selection) { 
    $("#"+selection).css('background', '#CC0000'); 
    $("#"+selection).css('color', '#ffffff'); 
})(); 
+2

究竟是什麼你想在這裏做什麼?這有點不清楚。你能否指出我們這樣做的一個例子? – JaredPar

+0

HTML的其餘部分在哪裏?你包括jQuery本身?你把你的代碼放在jQuery的'document.ready'中嗎? – Sparky

+0

@JaredPar:Iam嘗試將現有JS函數的定義更改爲匿名函數或閉包(它應該接受相同的參數選擇)。此外,我應該使用相同的簽名調用函數 – Someone

回答

1

問題是你已經設置了一個自動執行的匿名函數,這意味着setsTab被設置爲函數返回(undefined),因爲該函數一旦被調用就會被調用(這就是paren組在聲明結束時,調用函數);

什麼,我會做的是

var setsTab = function(selection) { 
    $("#"+selection).css('background', '#CC0000'); 
    $("#"+selection).css('color', '#ffffff'); 
}; 
0

我猜你要這樣說?

var setsTab = function (selection) { 
    $("#"+selection).css('background', '#CC0000'); 
    $("#"+selection).css('color', '#ffffff'); 
} 

編輯:但這與jQuery沒有任何關係。 (anonymous jquery function?)

+1

或稱爲「匿名函數」給出:p與帖子的主要區別在於函數對象不是首先被調用,而是被賦值給變量。 – 2011-09-25 16:42:55

相關問題