在jquery click()之后调用已定义的函数不起作用

时间:2013-07-29 05:58:42

标签: javascript jquery function user-defined-functions

请考虑以下脚本块。问题被解释为评论。

$(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);排除在函数之外,并在已调用changeMenu()的2个位置使用此代码,则效果很好。

2 个答案:

答案 0 :(得分:1)

语法错误,您需要关闭函数,或者在这种情况下,向事件处理程序添加函数:

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

    changeMenu('parse-gallery');

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

FIDDLE

答案 1 :(得分:1)

请检查代码中遗漏的内容..

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