【发布时间】:2022-08-16 01:21:23
【问题描述】:
当我检查它时,我在浏览器控制台中不断收到此错误:Uncaught TypeError: allSections.addEventListener is not a function 在 PageTransitions (app.js:16:17) 在 app.js:33:1
这很奇怪,因为在我的 vs 代码编辑器中它没有显示任何错误。这是我在下面使用的代码。
const sections = document.querySelectorAll(\'.section\');
const secBtns = document.querySelectorAll(\'.controls\');
const secBtn = document.querySelectorAll(\'.control\');
const allSections = document.querySelectorAll(\'.main-content\');
function PageTransitions(){
for(let i = 0; i < secBtn.length; i++){
secBtn[i].addEventListener(\'click\', function(){
let currentBtn = document.querySelectorAll(\'.active-btn\');
currentBtn[0].className = currentBtn[0].className.replace(\'active-btn\', \'\')
this.className += \' active-btn\';
})
}
allSections.addEventListener(\'click\', (e) =>{
const id = e.target.dataset.id;
if(id) {
secBtns.forEach((btn) => {
btn.classList.remove(\'active\')
})
e.target.classList.add(\'active\')
sections.forEach((section)=>{
section.classList.remove(\'active\')
})
const element = document.getElementById(id);
element.classList.add(\'active\');
}
})
}
PageTransitions();
这里也是下面的html。
<!DOCTYPE html>
<html lang=\"en\">
<head>
<meta charset=\"UTF-8\">
<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">
<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">
<title>Portfolio</title>
<link rel=\"stylesheet\" href=\"styles/styles.css\">
<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">
<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>
<link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css\" integrity=\"sha512-1ycn6IcaQQ40/MKBW2W4Rhis/DbILU74C1vSrLJxCq57o941Ym01SwNsOMqvEBFlcgUa6xLiPY/NS5R+E6ztJQ==\" crossorigin=\"anonymous\" referrerpolicy=\"no-referrer\" />
<link href=\"https://fonts.googleapis.com/css2?family=Poppins:ital@1&family=Ubuntu:wght@300&display=swap\" rel=\"stylesheet\">
</head>
<body class=\"main-content\">
<header class=\"section sec1 header active\" id=\"home\">
</header>
<main>
<section class=\"section sec2 about\" id=\"about\"></section>
<section class=\"section sec3 portfolio\" id=\"portfolio\"></section>
<section class=\"section sec4 blogs\" id=\"blogs\"></section>
<section class=\"section sec5 contacts\" id=\"contact\"></section>
</main>
<div class=\"controls\">
<div class=\"control control-1 active-btn\" data-id=\"home\">
<i class=\"fas fa-home\"></i>
</div>
<div class=\"control control-2 \" data-id=\"about\">
<i class=\"fas fa-user\"></i>
</div>
<div class=\"control control-3 \" data-id=\"portfolio\">
<i class=\"fas fa-briefcase\"></i>
</div>
<div class=\"control control-4 \" data-id=\"blogs\">
<i class=\"far fa-newspaper\"></i>
</div>
<div class=\"control control-5 \" data-id=\"contact\">
<i class=\"fas fa-envelope-open\"></i>
</div>
</div>
<script src=\"app.js\"></script>
</body>
</html>
标签: javascript html console