2012-04-20 73 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