Показывать div на основании комбинации отборных Выборов

Я стараюсь показывать различные DIVs на основании выбора 2 'option', но если я хочу показать 2 раза тот же div с различными 'option', они не появляются.

div1 = 3+5 (он не появляется)

div2 = 2+7 (он появляется)

div1 = 4+4 (он появляется)

Почему?

http://jsfiddle.net/9ex589b9/

var $s1 = $('#select1').change(change);
var $s2 = $('#select2').change(change);

function change(){
    $('#div1').toggle($s1.val() == '3' && $s2.val() == '5')
    $('#div2').toggle($s1.val() == '2' && $s2.val() == '7')
    $('#div1').toggle($s1.val() == '4' && $s2.val() == '4')
    
    
};
#div1,#div2,#div3 ,#div4,#div5,#div6,#div7{ display:none}


+


8
9

1
задан 27.03.2016, 18:44
1 ответ

То, за чем оно последует, состоит в том, что оценена Гєltima линия, где ты определяешь div, например, aquГ-:

$('#div2').toggle($s1.val() == '4' && $s2.val() == '7')
$('#div1').toggle($s1.val() == '3' && $s2.val() == '5')
$('#div2').toggle($s1.val() == '2' && $s2.val() == '7')
$('#div1').toggle($s1.val() == '4' && $s2.val() == '4')

Гєnicamente evaluarГ - в:

$('#div2').toggle($s1.val() == '2' && $s2.val() == '7')
$('#div1').toggle($s1.val() == '4' && $s2.val() == '4')

, Если ты хочешь показать и скрыть твои div, я рекомендую тебе в этом случае использовать mГ©todo .show() и .hide(), так как с toggle(), podrГ-схвати, тебе будьте нужно что-то из проблем проконтролировать состояния div. Реализуй изменение в твоем рукописном шрифте, реализовывая оценки стоимости внутри одного if:

var $s1 = $('#select1').change(change);
var $s2 = $('#select2').change(change);

function change(){

 if(($s1.val() == '3' && $s2.val() == '5') ||    ($s1.val() == '4' && $s2.val() == '4')) {
     $('#div1').show();
 }else if($s1.val() == '2' && $s2.val() == '7') {
     $('#div2').show();
 }else{
     $('#div1').hide();
     $('#div2').hide(); 
 }

};

AquГ - добавил пример .

0
ответ дан 24.11.2019, 14:41

Теги

Похожие вопросы