我有这个(非常)简单的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会破坏。)
我的代码是否有任何明显错误,我根本没有看到?坦率地说,这段代码非常简单,我真的不明白这个问题是什么。
谢谢!
答案 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(); });
});