2017-01-18 7 views
-2

Я использую счетчик для отображения соответствующей информации при каждом нажатии, но я не могу заставить кнопку работать за один клик. Я считаю, что правильно добавляю к своему счетчику, но по какой-то причине он не регистрируется должным образом. Любые изменения будут оценены.Вложенная инструкция JS if не работает должным образом

$(document).on("click", ".proceedBtn", function() { 
 
      $i = 0; 
 
      $i = $i + 1; 
 
      if ($i == 1){ 
 
       if ($i == 2){ 
 
        $('#billingQuestions').hide(); 
 
        $('#billingQuestions2').hide(); 
 
        $('#noQuestions').hide(); 
 
        $('#noQuestions2').hide(); 
 
        $('#paymentInfo').show(); 
 
        $('#paymentInfo2').show(); 
 
        $('.arrow').css('left', '84%'); 
 
        console.log("payment"); 
 
        return; 
 
       } 
 
       $('#noQuestions').show(); 
 
       $('#noQuestions2').show(); 
 
       $('#billingQuestions').hide(); 
 
       $('#billingQuestions2').hide(); 
 
       $('#paymentInfo').hide(); 
 
       $('#paymentInfo2').hide(); 
 
       $('.arrow').css('left', '50%'); 
 
       $i++; 
 
       console.log("shipping"); 
 
       return; 
 
      }  
 
     });

+0

'$ я = 0; $ i = $ i + 1; 'Но почему? Несмотря на это, вы каждый раз сбрасываете счетчик. вы можете использовать глобальную переменную, определенную вне обработчика щелчка – empiric

+0

Кроме того, у вас есть if ($ i == 1), и внутри этого оператора вы имеете, если ($ i == 2), который является недопустимым (он никогда не перейдет к second 'if') – Observer

+2

Не префикс всех ваших переменных с '$'. Это не PHP. Но если вы посмотрите на свой код, вы начинаете с установки '$ i' на' 0'. Затем вы сразу увеличите его до «1». Прежде всего, вы проверяете, действительно ли значение «2». Как он когда-нибудь достигнет «2»? –

ответ

0

переменная $ я всегда 0 при нажатии кнопки так, когда вы делаете сумму $ я + 1 всегда 1.

Кроме того, у вас есть много ID на вашей странице, не можете ли вы использовать класс для элементов, которые вы хотите скрыть и показать? Проверьте структуру своей страницы, вы можете оптимизировать свой html и их классы/ID

2

Помните, что все функции внутри выполняются после каждого нажатия.

$(document).on("click", ".proceedBtn", function() { 
    $i = 0;    // On every click $i is reset to 0 
    $i = $i + 1;   // Now $i == 1 
    if ($i == 1) {  // So this condition is always true 
     if ($i == 2) { // And this condition is always false 
      ...   // That's why this part is never executed 
     } 
    } 
} 

То, что вы, вероятно, нужно это:

$i = 0; 
$(document).on("click", ".proceedBtn", function() { 
    $i = $i + 1; 
    if ($i == 1){ 
     $('#noQuestions').show(); 
     $('#noQuestions2').show(); 
     $('#billingQuestions').hide(); 
     $('#billingQuestions2').hide(); 
     $('#paymentInfo').hide(); 
     $('#paymentInfo2').hide(); 
     $('.arrow').css('left', '50%'); 
     console.log("shipping"); 
    }  
    else if ($i == 2){ 
     $('#billingQuestions').hide(); 
     $('#billingQuestions2').hide(); 
     $('#noQuestions').hide(); 
     $('#noQuestions2').hide(); 
     $('#paymentInfo').show(); 
     $('#paymentInfo2').show(); 
     $('.arrow').css('left', '84%'); 
     console.log("payment"); 
    } 
});