2013-07-29 39 views
0

請考慮下面的腳本塊。問題被解釋爲評論。在jquery click()不起作用後調用一個已定義的函數

$(document).ready(function(){ 

    function changeMenu(e) { 
     $('#navigator').removeClass('a').removeClass('b').addClass(e); 
    }; 

    // Neither this line 
    changeMenu('element-id'); 

    $('.mainmenuitem').click(
     // Nor this line execute the function 
     changeMenu(this.id) 
    ); 

}) 

需要注意的是,如果我把代碼$('#nav').removeClass('a').removeClass('b').addClass(e);出來的功能,並在2個地方是changeMenu()被稱爲使用,效果很好。

回答

1

語法錯誤,你需要關閉的功能,或在這種情況下,將函數添加到事件處理程序:

$(document).ready(function(){ 
    function changeMenu(selectedMenuID) { 
     $('#navigator').removeClass('a b').addClass(selectedMenuID); 
    } 

    changeMenu('parse-gallery'); 

    $('.mainmenuitem').click(function() { 
     changeMenu(this.id) 
    }); 
}); 

FIDDLE

+0

我也應該感謝教我如何一次刪除2班! ':D' –

+0

@MohammadNaji - 沒問題,樂意幫忙! – adeneo

1

請檢查你在你的代碼已經錯過了..

$('.mainmenuitem').click(function(){ 
     changeMenu(this.id) 
});