我正在建立一个网站,我有一个由JS控制的移动下拉菜单(并显示@media查询400px以下的设备)。我的网站是jeffarries.com(我正在谈论的页面就在那里),移动导航工作在我的所有其他页面上,但不在我的 Politics 页面上。不起作用的是打开和关闭导航下拉列表的栏不会旋转,body
未设置为position: fixed;
。为什么我的JS在我的所有页面上工作但是政治?
谢谢!
P.S。我可以提供代码,但它就像250+行和不同的文件,所以我认为如果你在我的网站上查看它会是最好的。 (我不是想听起来很懒,所以如果你想要代码,请问我会提供它)
答案 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 = "";
您应该更正控制台中出现的其他错误。