代码之家  ›  专栏  ›  技术社区  ›  aliezaheer

AddEventListener不适用于一个元素[重复]

  •  -2
  • aliezaheer  · 技术社区  · 3 年前

    console.log . 请看看我哪里出错了?

        <ul id="nv">
          <li class="nvItem"><a href="#">Home</a></li>
          <li class="nvItem"><a href="#the-story">Story</a></li>
          <li class="nvItem"><a href="#comic-book">Comic</a></li>
          <li class="nvItem"><a href="#creatures">Creatures</a></li>
          <li class="nvItem"><a href="#the-path">Path</a></li>
          <li class="nvItem"><a href="#artists">Nikal</a></li>                      
        </ul>
    

    请忽略id mn

    const navigation = document.getElementById("nv");
    const menu = document.getElementById("mn");
    const navItems = document.getElementsByClassName("nvItem")
    
    menu.addEventListener("click", () => {
      navigation.style.setProperty("--childenNumber", navigation.children.length);
    
      navigation.classList.toggle("active");
      menu.classList.toggle("active");
      console.log("---Active---");
    });
    
    navItems.addEventListener("click", () => {
        navigation.classList.toggle("nonActive");
        menu.classList.toggle("nonActive");
        console.log("---Deactive---");
      });
      
    
    1 回复  |  直到 3 年前
        1
  •  0
  •   Daniel Tate    3 年前

    您应该花些时间阅读以下关于事件侦听器的内容: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener

    它们不能附加到节点列表 https://developer.mozilla.org/en-US/docs/Web/API/NodeList

    const navigation = document.getElementById("nv");
    const menu = document.getElementById("mn");
    const navItems = document.getElementsByClassName("nvItem")
    
    menu.addEventListener("click", () => {
      navigation.style.setProperty("--childenNumber", navigation.children.length);
    
      navigation.classList.toggle("active");
      menu.classList.toggle("active");
      console.log("---Active---");
    });
    
    Array.from(navItems).forEach(item => {
      item.addEventListener("click", e => {
        navigation.classList.toggle("nonActive");
        menu.classList.toggle("nonActive");
        console.log("---Deactive---");
      });
    });
    <div id="mn">
      menu
    </div>
    <ul id="nv">
      <li class="nvItem"><a href="#">Home</a></li>
      <li class="nvItem"><a href="#the-story">Story</a></li>
      <li class="nvItem"><a href="#comic-book">Comic</a></li>
      <li class="nvItem"><a href="#creatures">Creatures</a></li>
      <li class="nvItem"><a href="#the-path">Path</a></li>
      <li class="nvItem"><a href="#artists">Jozef</a></li>
    </ul>