【问题标题】:calling a defined function after jquery click() doesn't work在 jquery click() 之后调用定义的函数不起作用
【发布时间】:2013-07-29 05:58:41
【问题描述】:

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

$(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() 的两个地方使用它,则效果很好。

【问题讨论】:

    标签: javascript jquery function user-defined-functions


    【解决方案1】:

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

    $(document).ready(function(){
        function changeMenu(selectedMenuID) {
            $('#navigator').removeClass('a b').addClass(selectedMenuID);
        }
    
        changeMenu('parse-gallery');
    
        $('.mainmenuitem').click(function() {
            changeMenu(this.id)
        });
    });
    

    FIDDLE

    【讨论】:

    • 我还要感谢您教我如何一次删除 2 个类! :D
    • @MohammadNaji - 没问题,乐于助人!
    【解决方案2】:

    请检查您的代码中遗漏了什么..

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-18
      • 1970-01-01
      • 2018-05-06
      • 2019-05-05
      • 2020-10-14
      • 2014-12-17
      • 1970-01-01
      相关资源
      最近更新 更多