【问题标题】:Uncaught TypeError: nav.classList.togle is not a function未捕获的 TypeError:nav.classList.togle 不是函数
【发布时间】:2021-09-09 05:02:30
【问题描述】:

我正在尝试执行此 javascript 以显示一个主菜单,但是当我执行它时,浏览器会响应“未捕获的 TypeError:nav.classList.togle 不是函数”,该函数是正确的“切换”,但是当我尝试使用 F12 查找错误时收到的消息正在考虑带有“togle”的咒语。有什么办法可以在浏览器解释下修复它?

/*abre e fecha o menu quando clicar no icone: hamburguer e x*/
const nav = document.querySelector('#header nav')
const toggle = document.querySelectorAll('nav .toggle')

for (const element of toggle) {
  element.addEventListener('click', function () {
    nav.classList.toggle('show')
  })
}

/*quando clicar em um item do menu, esconder o menu*/
const links = document.querySelectorAll('nav ul li a')

for (const link of links) {
  link.addEventListener('click', function () {
    nav.classList.remove('show')
  })
}

/*mudar o header da página quando der scroll*/
const header = document.querySelector('#header')
const navHeight = header.offsetHeight

window.addEventListener('scroll', function () {
  if (window.scrollY >= navHeight) {
    // scroll é maior que a altura do header
    header.classList.add('scroll')
  } else {
    // menor que a altura do header
    header.classList.remove('scroll')
  }
})

【问题讨论】:

  • 除了代码中的某处是nav.classList.togle之外,没有其他可能的解释。对所有项目文件进行全局搜索

标签: javascript html toggle browser-cache


【解决方案1】:

下面的 querySelector 没有正确找到元素。

const nav = document.querySelector('#header nav')

由于您通过id 定位元素,也许考虑简化为

const nav = document.querySelector('#header')
console.log(nav) // Ensure this is returning an element

【讨论】:

    猜你喜欢
    • 2017-07-20
    • 2019-09-26
    • 2015-12-29
    • 2017-07-31
    • 2016-11-02
    • 2016-08-07
    • 2022-01-25
    • 2016-11-21
    • 2021-03-13
    相关资源
    最近更新 更多