2015-04-12 17 views
0

我以前在其他模板中使用的一个非常基本的If语句由于某种原因不起作用,并且我很茫然。该功能是页面滑入和滑出视图的导航栏的一部分。我有四个导航按钮:家庭,设计,联系人,感言。这里的问题是代码:简单如果语句看起来不工作,但JS控制台不记录任何错误

var currentPage = 1; 

function openDesigns() { 
    document.getElementById("homePage").style.left = "-" + 620 + "px"; 
    document.getElementById("designsPage").style.left = "-" + 620 + "px"; 
    document.getElementById("contactPage").style.left = "-" + 620 + "px"; 
    document.getElementById("testimonialsPage").style.left = "-" + 620 + "px"; 
    document.getElementById("homeButton").style.height = "50px"; 
    document.getElementById("homeButton").style.lineHeight = "40px"; 
    document.getElementById("designsButton").style.height = "60px"; 
    document.getElementById("designsButton").style.lineHeight = "57px"; 
    document.getElementById("contactButton").style.height = "50px"; 
    document.getElementById("contactButton").style.lineHeight = "40px"; 
    document.getElementById("testimonialsButton").style.height = "50px"; 
    document.getElementById("testimonialsButton").style.lineHeight = "40px"; 
    setTimeout(function() { 
     document.getElementById("homePage").style.zIndex = 0; 
     document.getElementById("designsPage").style.zIndex = 1; 
     document.getElementById("contactPage").style.zIndex = 0; 
     document.getElementById("testimonialsPage").style.zIndex = 0; 
     document.getElementById("designsPage").style.left = "-" + 0 + "px"; 
    }, 250); 
} 

document.getElementById("designsButton").onclick = function() { 
    if (currentPage == 1 || 3 || 4) { 
     openDesigns(); 
     currentPage = 2; 
     console.log(currentPage); 
    } else if (currentPage == 2) { 
     console.log("yup"); //this is here to check whether or not the code was getting to this point 
    } 
} 

这只是一组四个funcions(每页一个)。 currentPage变量应该表示哪个页面当前处于打开状态(主页为1,设计为2)。点击设计导航按钮后,应检查该页面是否已打开。它工作正常,如果它不是(它打开页面,因为它应该),但问题是,一旦页面被打开,currentPage被设置为2,所以下一次按钮被点击时,它应该触发“else if “没有任何反应的声明......但相反,它会再次触发”if“语句,这会再次触发打开动画,这是我不想要的。

我不能为我的生活弄清楚为什么会发生这种情况。我认为代码是稳定的......我以前做过很多次了。有任何想法吗?

+2

'当前页== 1 || 3 || 4'没有做你认为的,它被解释为'currentPage == 1 ||真||真的“,所以总是如此。我想你想'currentPage == 1 || currentPage == 3 ||当前页== 4“。 – RobG

回答

1

改变这一行:

if (currentPage == 1 || 3 || 4) { 

要这样:

if (currentPage == 1 || currentPage == 3 || currentPage == 4) { 
0

更改您的如下条件

document.getElementById("designsButton").onclick = function() { 
    if (currentPage === 1 || currentPage === 3 || currentPage === 4) { 
     openDesigns(); 
     currentPage = 2; 
     console.log(currentPage); 
    } else if (currentPage == 2) { 
     console.log("yup"); //this is here to check whether or not the code was getting to this point 
    } 
} 
相关问题