2011-01-21 11 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(); 
+0

ありがとう、私はこれを試してみます:) – Bongbong

+0

これは、今すぐうまく動作している、それを整理していただきありがとうございます! – Bongbong

2

jQueryのmultiple selectorsをサポートし、これを試してみてください:

$("#div1, #div2").show(); 
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; 
} 

場合/他のあなたを維持あまりにも動作します。)

+0

私は操作する複数の条件があるので、各行をハードコードしたいとは思わない。可能であれば、セレクタではなくparametresを使用して呼び出しを行う方法が不思議です。 – Bongbong

+0

@ボンボン:私の編集が好きですか? :S – Shikiryu

+0

ありがとう、Box9の提案を使用して、それはコードの2行に縮小されており、それはきれいです。 :) – Bongbong

関連する問題