我以前在其他模板中使用的一个非常基本的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“语句,这会再次触发打开动画,这是我不想要的。
我不能为我的生活弄清楚为什么会发生这种情况。我认为代码是稳定的......我以前做过很多次了。有任何想法吗?
'当前页== 1 || 3 || 4'没有做你认为的,它被解释为'currentPage == 1 ||真||真的“,所以总是如此。我想你想'currentPage == 1 || currentPage == 3 ||当前页== 4“。 – RobG