Javascript 嵌套的JS if语句工作不正常
我正在使用计数器在每次单击时显示适当的信息,但我无法让按钮在单击后工作。我相信我添加到我的计数器是正确的,但由于某些原因,它没有正确注册。如有任何修改,将不胜感激Javascript 嵌套的JS if语句工作不正常,javascript,jquery,click,counter,nested-if,Javascript,Jquery,Click,Counter,Nested If,我正在使用计数器在每次单击时显示适当的信息,但我无法让按钮在单击后工作。我相信我添加到我的计数器是正确的,但由于某些原因,它没有正确注册。如有任何修改,将不胜感激 $(文档).on(“单击“,”.proceedBtn”,函数(){ $i=0; $i=$i+1; 如果($i==1){ 如果($i==2){ $(“#billingQuestions”).hide(); $(“#billingQuestions2')。隐藏(); $(“#无问题”).hide(); $(“#无问题2”).hide()
$(文档).on(“单击“,”.proceedBtn”,函数(){
$i=0;
$i=$i+1;
如果($i==1){
如果($i==2){
$(“#billingQuestions”).hide();
$(“#billingQuestions2')。隐藏();
$(“#无问题”).hide();
$(“#无问题2”).hide();
$('#paymentInfo').show();
$('#paymentInfo2').show();
$('.arrow').css('left','84%');
控制台日志(“付款”);
返回;
}
$(“#无问题”).show();
$(“#无问题2”).show();
$(“#billingQuestions”).hide();
$(“#billingQuestions2')。隐藏();
$('#paymentInfo').hide();
$('#paymentInfo2').hide();
$('.arrow').css('left','50%);
$i++;
控制台日志(“装运”);
返回;
}
});代码>当您单击时,$i变量始终为0,因此当您使$i+1之和始终为1时
除此之外,您的页面中有很多ID,您不能为要隐藏和显示的元素使用类吗?检查页面结构,您可以优化html及其类/ID记住,函数中的所有内容都是在每次单击后执行的
$(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");
}
});
$i=0$i=$i+1但是为什么呢?尽管如此,每次单击都会重置计数器。您可能希望使用在click handlerAlso外部定义的全局变量,您有if($i==1),在这个语句中,您有if($i==2),它是无效的(它永远不会转到第二个“if”),不在所有变量前面加$
。这不是PHP。但是,如果您查看代码,首先将$i
设置为0
。然后立即将其递增到1
。在执行任何其他操作之前,先检查该值是否真的为2
。它将如何到达2
?感谢所有有用的评论大家,仍然是JS的初学者,感谢回复。