代码之家  ›  专栏  ›  技术社区  ›  brettkelly

简单jQuery代码包含一个我找不到的语法错误

  •  1
  • brettkelly  · 技术社区  · 14 年前

    function hideNewUserPanel(){
        $('#create_user_panel').slideUp('slow');
        $('.right_interior_panel').slideDown('slow');
    }
    

    以及添加处理程序的代码:

    $(function(){
        $('#cancel_create_user_btn').live('click', 
            function(){ hideNewUserPanel(); }
         )
    });
    

    从功能上讲,一切都按预期工作。问题是,当我点击“取消”链接时,Firebug在控制台中显示一个错误:

    未捕获异常:语法错误,无法识别的表达式:#

    我已经逐步检查代码好几次,错误出现在调用 hideNewUserPanel() . 冒着听起来像“那些程序员”(声称在GCC中发现了一个bug并认为自己的代码是完美的)的风险,异常是从jQuery本身的某个地方抛出的,所以我认为问题就在那里。我使用的是jQuery 1.3.2(这是一个遗留项目,使用了许多jQuery插件,如果我们更新到1.4.x,就会中断)。

    我的代码有什么明显的错误,我根本看不到?坦率地说,这段代码非常简单,我真的不知道问题是什么。

    3 回复  |  直到 14 年前
        1
  •  4
  •   Nick Craver    14 年前

    这个:

    $(function(){
        $('#cancel_create_user_btn').live('click', 
            function(){ hideNewUserPanel(); }
    });
    

    $(function(){
        $('#cancel_create_user_btn').live('click', 
            function(){ hideNewUserPanel(); });
    });
    

    另外,你可以写得简单一点:),试试这个:

    $(function(){
        $('#cancel_create_user_btn').live('click', hideNewUserPanel);
    });
    
        2
  •  1
  •   T.J. Crowder    14 年前

    你似乎要结束了 live 电话:

    $(function(){
        $('#cancel_create_user_btn').live('click', 
            function(){ hideNewUserPanel(); }
        ); // <===
    });
    
        3
  •  0
  •   Ali Habibzadeh    14 年前
    $(function() {
    
            function hideNewUserPanel() {
                $('#create_user_panel').slideUp('slow');
                $('.right_interior_panel').slideDown('slow');
            }
    
            $('#cancel_create_user_btn').live('click', function() { hideNewUserPanel(); });
    
    
    
        });