Javascript 为什么我的JS mobile nav只能在我的所有页面上工作,只有一个页面除外?
我正在建立一个网站,我有一个由JS控制的移动下拉菜单(在400px以下的设备上显示@media querys)。我的网站是(我正在谈论的页面是直播的),移动导航可以在我的所有其他页面上工作,但不能在我的政治页面上工作。不起作用的是,打开和关闭导航下拉菜单的栏不旋转,Javascript 为什么我的JS mobile nav只能在我的所有页面上工作,只有一个页面除外?,javascript,html,css,navigation,Javascript,Html,Css,Navigation,我正在建立一个网站,我有一个由JS控制的移动下拉菜单(在400px以下的设备上显示@media querys)。我的网站是(我正在谈论的页面是直播的),移动导航可以在我的所有其他页面上工作,但不能在我的政治页面上工作。不起作用的是,打开和关闭导航下拉菜单的栏不旋转,主体未设置为位置:固定。为什么我的JS在我所有的页面上都工作,除了政治 谢谢 另外,我可以提供代码,但它像250+行,在不同的文件中,所以我认为最好是你在我的网站上查看它。(我不想让人觉得我懒惰,所以如果你想要代码,只要问一下,我就会
主体
未设置为位置:固定代码>。为什么我的JS在我所有的页面上都工作,除了政治
谢谢
另外,我可以提供代码,但它像250+行,在不同的文件中,所以我认为最好是你在我的网站上查看它。(我不想让人觉得我懒惰,所以如果你想要代码,只要问一下,我就会提供)为什么我的JS mobile nav只能在我的所有页面上工作,只有一个页面除外?
因为你有一个javascript错误
检查浏览器控制台,您将看到:
TypeError:null不是对象(计算'document.getElementById(“javascript_警告”).style')
如果查看politics.js文件的第331行,您将看到以下函数:
// Hides javascript warning message
function myFunction() {
document.getElementById("javascript_warning").style.display = "none";
}
这就是导致错误的原因,因为document.getElementById(“javascript_警告”)为null,并且您正试图对其调用样式
确保元素首先存在,例如
// Hides javascript warning message
function myFunction() {
var elem = document.getElementById("javascript_warning");
if (elem != null) {
elem.style.display = "none"
}
};
快速解决方法是:
删除此行
var body = document.getElementsByTagName("BODY")[0];
将这些行中的“body”替换为“document.body”:
body.style.position = "fixed";
body.style.position = "";
您还应该更正console中出现的其他错误。我们不需要查看所有250+行,只需要查看那些可能影响下拉列表的行。另外,您是否在控制台中看到任何错误?(点击F12)@MikeC这是一个单独的JS脚本,它抛出了一个错误,导致我的JS的其余部分无法工作,谢谢你的提示!是的,我意识到这是一个错误。很抱歉谢谢你处理JS的错误!谢谢你的代码瘦身和努力!我接受另一个答案,因为它是第一个,而且更彻底。再次感谢!