为什么我的 JS 移动导航在我的所有页面上都有效,但只有一个?
Why does my JS mobile nav work on all my pages but one?
我正在建立一个网站,并且我有一个由 JS 控制的移动下拉菜单(对于 400 像素以下的设备,它会与 @media 查询一起出现)。我的网站是 jeffarries.com(我正在谈论的页面就在那里),移动导航适用于我的所有其他页面,但不适用于我的 Politics 页面。不起作用的是打开和关闭导航下拉菜单的栏不旋转并且 body
未设置为 position: fixed;
。为什么我的 JS 在我的所有页面上都有效,但 Politics?
谢谢!
P.S。我可以提供代码,但它有 250 多行并且在不同的文件中,所以我认为最好在我的网站上查看它。 (我不是想偷懒,所以如果你想要代码,尽管问我会提供)
为什么我的 JS 移动导航在我的所有页面上都有效,但只有一个?
因为你有一个javascript错误!
检查您的浏览器控制台,您会看到它:
TypeError: null 不是对象(正在计算 'document.getElementById("javascript_warning").style')
如果您查看 politics.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"
}
};
快速解决方法是:
删除此行
var body = document.getElementsByTagName("BODY")[0];
将这些行中的 'body' 替换为 'document.body':
body.style.position = "fixed";
body.style.position = "";
您还应更正控制台中出现的其他错误。
我正在建立一个网站,并且我有一个由 JS 控制的移动下拉菜单(对于 400 像素以下的设备,它会与 @media 查询一起出现)。我的网站是 jeffarries.com(我正在谈论的页面就在那里),移动导航适用于我的所有其他页面,但不适用于我的 Politics 页面。不起作用的是打开和关闭导航下拉菜单的栏不旋转并且 body
未设置为 position: fixed;
。为什么我的 JS 在我的所有页面上都有效,但 Politics?
谢谢!
P.S。我可以提供代码,但它有 250 多行并且在不同的文件中,所以我认为最好在我的网站上查看它。 (我不是想偷懒,所以如果你想要代码,尽管问我会提供)
为什么我的 JS 移动导航在我的所有页面上都有效,但只有一个?
因为你有一个javascript错误!
检查您的浏览器控制台,您会看到它:
TypeError: null 不是对象(正在计算 'document.getElementById("javascript_warning").style')
如果您查看 politics.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"
}
};
快速解决方法是:
删除此行
var body = document.getElementsByTagName("BODY")[0];
将这些行中的 'body' 替换为 'document.body':
body.style.position = "fixed";
body.style.position = "";
您还应更正控制台中出现的其他错误。