2011-01-21 52 views
2

如何將以下所有變量分組爲使用sigle show()或hide()來代替每個請求的單獨調用?謝謝。jQuery - 如何在使用show()或hide()時對多個變量進行分組?

var alertsLink = "alertsLink"; 
var alertsLinkId = $j("#" + alertsLink); 
var modifyLink = "modifySearch"; 
var events = $j("#eventsPanel"); 
var alerts = $j("#alertsPanel"); 
var results = $j("div.results"); 

if(id == eventsLink){ 
    events.show(); 
    alerts.hide(); 
    results.hide(); 
    eventsLinkId.hide(); 
    alertsLinkId.show(); 
    }else if(id == alertsLink){ 
    events.hide(); 
    alerts.show(); 
    results.hide(); 
    alertsLinkId.hide(); 
    eventsLinkId.show(); 
    }else if(id != modifyLink){ 
    events.hide(); 
    alerts.hide(); 
    results.show(); 
    alertsLinkId.show(); 
    eventsLinkId.show(); 
    } 
} 

回答

1

如果你想繼續使用的變量,而不是垃圾,有很多神奇的字符串的代碼,那麼你可以做:

events.add(alertsLinkId).show(); 
alerts.add(results).add(eventsLinkId).hide(); 
1

您可以組合選擇,像這樣:

$j("div.results, #alertsPanel")… 
0
if(id == eventsLink){ 
    $j("#eventsPanel, #alertsLink").show(); 
    $j("#alertsPanel, div.results").hide(); 
} 

你可以做這樣太:

$j('#eventsPanel, #alertsLink, #alertsPanel, div.results).hide(); 
switch (id) 
{ 
case 'eventsLink': $j("#eventsPanel, #alertsLink").show(); break; 
case 'alertsLink': $j("#alertsPanel").show(); break; 
default: $j("div.results, #alertsLink").show(); break; 
} 

保持你的if/else也工作;)

+0

我不想'硬編碼每一行,因爲有多個條件來操縱。只是想知道如何使用parametres而不是選擇器進行調用。 – Bongbong 2011-01-21 11:29:22

+0

@Bongbong:像我的編輯? :S – Shikiryu 2011-01-21 11:37:10