2012-04-20 72 views
3

下面显示的代码段工作正常,除了它看起来有点对我的意见(使它自己:P)有趣。我相信这可以更清洁。所以我的问题是如何结合这些'皮'?还有其他建议吗?jQuery的onclick函数清理

$('.login_inputbox').removeClass("register_inputbox_error login_inputbox_error").removeClass("register_inputbox_ok login_inputbox_ok"); 
validator.resetForm(); 
$(".btn-slide_login").removeClass("active_login"); 
$(".btn-slide_all").removeClass("active_all"); 
$('#fancybox-wrap').hide(); 
$('#fancybox-overlay').hide(); 
$('#panel_login').hide(); 
$('#panel_all').hide(); 

在此先感谢您的帮助!

+0

你的问题和“onclick函数”之间有什么关系? – 2012-04-20 22:23:06

+1

,因为这段代码放在onclick函数中。如果你知道一个更好的标题,你可以自由更新:) – 2012-04-20 22:25:58

回答

2

要组合.hide()语句,您需要一个适用于所有四个元素的选择器。你可以这样做:

$('#fancybox-wrap,#fancybox-overlay,#panel_login,#panel_all').hide(); 

或者你可以给这些元素共同类型:

$('.someClass').hide(); 

还要注意的是你的第一行可以通过组合.removeClass()电话被简化:

$('.login_inputbox').removeClass("register_inputbox_error login_inputbox_error register_inputbox_ok login_inputbox_ok"); 
+0

tnx的教训! :) – 2012-04-20 22:28:08

2

你可以逗号分开选择器。例如:

$('#fancybox-wrap, #fancybox-overlay, #panel_login, #panel_all').hide(); 
1

如果您给#fancybox-wrap和朋友一个共同的班级,请将其称为new-class,您可以这样做:

$('.newclass').hide(); 

并立即获得所有四个。

5

您可以USS removeClass一次如下而不是使用它的

$('.login_inputbox').removeClass("register_inputbox_error login_inputbox_error register_inputbox_ok login_inputbox_ok"); 

两次如下

$('.login_inputbox').removeClass("register_inputbox_error login_inputbox_error").removeClass("register_inputbox_ok login_inputbox_ok"); 

$('#fancybox-wrap, #fancybox-overlay, #panel_login, #panel_all').hide(); 

,而不是

$('#fancybox-wrap').hide(); 
$('#fancybox-overlay').hide(); 
$('#panel_login').hide(); 
$('#panel_all').hide(); 
+0

tnx也给你了! :) – 2012-04-20 22:30:44

+1

你是最受欢迎的:-) – 2012-04-20 22:31:08