Uncaught TypeError: Cannot read property 'classList' of null at HTMLDivElement.<anonymous>
Uncaught TypeError: Cannot read property 'classList' of null at HTMLDivElement.<anonymous>
我遇到了问题标题中描述的错误问题。当我点击移动菜单的汉堡时,会出现此错误消息:Uncaught TypeError: Cannot read 属性 'classList' of null
在 HTMLDivElement.. 这是我的 JS 代码:
window.onload = function(){
const navSlide = () => {
const burger = document.querySelector('.burger');
const nav = document.querySelector('.nav-links');
const navLinks = document.querySelectorAll('.nav-links li');
burger.addEventListener('click', () => {
// Toggle Nav
nav.classList.toggle('nav-active');
// Animate Links
navLinks.forEach((link, index) => {
if (link.style.animation) {
link.style.animation = '';
} else {
link.style.animation = `navLinkFade 0.5s ease forwards ${index / 7 + 0.5}s`;
}
});
// Burger Animation
burger.classList.toggle('toggle');
});
}
navSlide();
}
,... 这是我的 HTML:
<header>
<div class="logo">
<h1 class="logo-text">Title</h1>
</div>
<ul class="nav">
<li><a href="#">Home</a></li>
<li><a href="#">Item1</a></li>
<li><a href="#">Item2</a></li>
<li><a href="#">Item3</a></li>
</ul>
<div class="burger">
<div class="line1"></div>
<div class="line2"></div>
<div class="line3"></div>
</div>
</header>
在 CSS 中,我有一个名为 .nav-active 的 class 和一个 class .toggle,当我打开菜单时应该可以使用。我将此 JS 用作 Joomla 中的附加文件。
希望你能帮帮我!谢谢!
您的class不正确
const nav = document.querySelector('.nav-links');
const navLinks = document.querySelectorAll('.nav-links li');
但你使用:
<ul class="nav">
所以当
nav.classList.toggle('nav-active');
被调用,未定义“nav”对象。
将无序列表更改为:
<ul class="nav-links">
我遇到了问题标题中描述的错误问题。当我点击移动菜单的汉堡时,会出现此错误消息:Uncaught TypeError: Cannot read 属性 'classList' of null 在 HTMLDivElement.. 这是我的 JS 代码:
window.onload = function(){
const navSlide = () => {
const burger = document.querySelector('.burger');
const nav = document.querySelector('.nav-links');
const navLinks = document.querySelectorAll('.nav-links li');
burger.addEventListener('click', () => {
// Toggle Nav
nav.classList.toggle('nav-active');
// Animate Links
navLinks.forEach((link, index) => {
if (link.style.animation) {
link.style.animation = '';
} else {
link.style.animation = `navLinkFade 0.5s ease forwards ${index / 7 + 0.5}s`;
}
});
// Burger Animation
burger.classList.toggle('toggle');
});
}
navSlide();
}
,... 这是我的 HTML:
<header>
<div class="logo">
<h1 class="logo-text">Title</h1>
</div>
<ul class="nav">
<li><a href="#">Home</a></li>
<li><a href="#">Item1</a></li>
<li><a href="#">Item2</a></li>
<li><a href="#">Item3</a></li>
</ul>
<div class="burger">
<div class="line1"></div>
<div class="line2"></div>
<div class="line3"></div>
</div>
</header>
在 CSS 中,我有一个名为 .nav-active 的 class 和一个 class .toggle,当我打开菜单时应该可以使用。我将此 JS 用作 Joomla 中的附加文件。
希望你能帮帮我!谢谢!
您的class不正确
const nav = document.querySelector('.nav-links');
const navLinks = document.querySelectorAll('.nav-links li');
但你使用:
<ul class="nav">
所以当
nav.classList.toggle('nav-active');
被调用,未定义“nav”对象。
将无序列表更改为:
<ul class="nav-links">