为什么我的JS移动导航工作在我的所有页面上但只有一个?

时间:2016-04-21 19:54:02

标签: javascript html css navigation

我正在建立一个网站,我有一个由JS控制的移动下拉菜单(并显示@media查询400px以下的设备)。我的网站是jeffarries.com(我正在谈论的页面就在那里),移动导航工作在我的所有其他页面上,但不在我的 Politics 页面上。不起作用的是打开和关闭导航下拉列表的栏不会旋转,body未设置为position: fixed;。为什么我的JS在我的所有页面上工作但是政治

谢谢!

P.S。我可以提供代码,但它就像250+行和不同的文件,所以我认为如果你在我的网站上查看它会是最好的。 (我不是想听起来很懒,所以如果你想要代码,请问我会提供它)

2 个答案:

答案 0 :(得分:1)

为什么我的JS移动导航工作在我的所有网页上,只有一个?

因为你有一个javascript错误!

检查您的浏览器控制台,您将看到它:

TypeError:null不是对象(评估'document.getElementById(“javascript_warning”)。style')

如果您查看polit.js文件的第331行,您将看到以下函数:

// Hides javascript warning message
function myFunction() {
    document.getElementById("javascript_warning").style.display = "none";
}

这是导致错误的原因,因为document.getElementById(“javascript_warning”)为null并且您正尝试在其上调用样式。

确保元素首先存在,例如

// Hides javascript warning message
function myFunction() {
    var elem = document.getElementById("javascript_warning");
    if (elem != null) {
        elem.style.display = "none"
    }
};

答案 1 :(得分:1)

快速解决方法是:

删除此行

var body = document.getElementsByTagName("BODY")[0];

更换' body'与' document.body'在这些方面:

body.style.position = "fixed";
body.style.position = "";

您应该更正控制台中出现的其他错误。