2012-06-07 1 views
0

У меня есть 4 меню выбора optgroup, которые отображаются в зависимости от значения параметра первого выбора. То, что я хотел бы сделать, это получить значение и загрузить соответствующую соответствующую группу выбора. Но очевидно, что если группа уже была выбрана, скрыть группу и поместить новую группу выбора на свое место.jQuery показать/скрыть требуемую логику

Мой JQuery код:

$('#subcategory1, #subcategory2, #subcategory3, #subcategory4').hide(); 

// Hide Orientation Dropdown 

$('#orientation').hide(); 

$('#category').change(function() 
{ 
    $('#orientation').show(); 

    var CatValue = $("#category").val(); 

    if (CatValue == '1') 
    { 
     $("#subcategory1").show(); 
    } 
    if (CatValue == '2') 
    { 
     $("#subcategory2").show(); 
    } 
    if (CatValue == '3') 
    { 
     $("#subcategory3").show(); 
    } 
    if(CatValue == '4') 
    { 
     $("#subcategory4").show(); 
    } 
}); 

Я смотрю на более логичным способом написания это. i.e скрыть предыдущие подкатегории и т. д.

Заранее спасибо.

ответ

1
switch(CatValue) 
    { 
     case "1": $("#subcategory1").show(); 
     break; 
     case "2": $("#subcategory2").show(); 
     break; 
    } 

и т.д. и т.п.

переключатель в основном позволяет использовать массивной, если заявление в несколько строк кода :)

+0

Привет, Спасибо за ответ. Как это применимо к шкуре. Как я хочу, чтобы только один список показывал за один раз ...? – StuBlackett

+0

'$ ('# подкатегория1, # подкатегория2, # подкатегория3, # подкатегория4'). Hide();' если вы добавите это как начало своей функции, которая будет показывать только нужный –

2
var num; 
if (CatValue == '1') 
{ 
    num = 1;  

} 
if (CatValue == '2') 
{ 
    num = 2;  
} 
if (CatValue == '3') 
{ 
    num = 3;  
} 
if(CatValue == '4') 
{ 
    num = 4;    
} 
$("#subcategory"+num).show(); 
2
$('#subcategory1, #subcategory2, #subcategory3, #subcategory4').hide().filter('#subcategory'+CatValue).show(); 
1
var i=1; 
while($("#subcategory"+i).length > 0) { // hide others 
    $("#subcategory"+i).hide(); 
    i++; 
} 
$("#subcategory"+$("#category").val()).show(); // show current 
Смежные вопросы