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

时间:2010-04-01 17:11:55

标签: javascript jquery exception

我有这个(非常)简单的JavaScript函数,当用户点击“取消”链接时调用该函数:

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

添加处理程序的代码:

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

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

  

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

我已多次执行代码,并且在调用hideNewUserPanel()之前的某个时刻出现错误。冒着听起来像“那些程序员”(声称在GCC中发现了一个错误并假设他们自己的代码是完美的)的风险,异常是从jQuery中的某个地方抛出的,所以我认为问题是在那里。我正在使用jQuery 1.3.2(这是一个使用许多jQuery插件的遗留项目,如果我们更新到1.4.x会破坏。)

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

谢谢!

3 个答案:

答案 0 :(得分:4)

此:

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

在函数之后需要关闭paren,如下所示:

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

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

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

答案 1 :(得分:1)

您似乎错过了live来电的结束:

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

答案 2 :(得分:0)

$(function() {

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

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



    });