无法获取/未定义

Cannot get / undefined

我试图将过渡添加到我的网站,所有 a> 标签都与过渡完美配合,但是当我添加这个 js 时,有时会告诉我这个错误: Cannot GET /pages/undefined

然后,当我尝试在同一个 html 中打开同一个 link 时,可以正常工作。我已经确保所有 link 都完美匹配,问题是 js 有时找不到 link,因为它是未定义的。这是所有代码:

HTML:

<body>
    
      <div class="transition transition-1 active"></div>
    
        <div class="header">
            <nav>
              <a href="../index.html">
                <span class="main-text">Phibik</span>
              </a>
              </button>
              <div class="main-nav">
                <ul id="menu">
                  <li>
                    <a href="inicio.html"><i class="fas fa-home"></i>Inicio</a>
                  </li>
                  <li>
                    <a href="games.html"><i class="fas fa-gamepad"></i>Games</a>
                  </li>
                  <li>
                    <a href="edits.html"><i class="fas fa-edit"></i>Edits</a>
                  </li>
                  <li>
                    <a href="random.html"><i class="fas fa-random"></i>Random</a>
                  </li>
                  <li>
                    <a href="about.html"><i class="fas fa-user"></i>About</a>
                  </li>
                </ul>
                <div id="hamburger" onclick="myFunction(this)">
                  <div class="bar1"></div>
                  <div class="bar2"></div>
                  <div class="bar3"></div>
                </div>
              </div>
            </nav>

CSS:

.transition-1 {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: -100%;
  width: 100%;
  z-index: 100;
  background-color: #202020;
  pointer-events: none;
  transition: 0.5s ease-out;
}

.transition-1.active {
  left: 0;
  pointer-events: all;
}

JS:

function myFunction(x) {
  x.classList.toggle("change");
}

const hamburger = document.getElementById("hamburger");
const navUL = document.getElementById("menu");

hamburger.addEventListener("click", () => {
  navUL.classList.toggle("show");
});

window.onload = () => {
  const transition_el = document.querySelector(".transition");
  const anchors = document.querySelectorAll("a");

  setTimeout(() => {
    transition_el.classList.remove("active");
  }, 500);

  for (let i = 0; i < anchors.length; i++) {
    const anchor = anchors[i];

    anchor.addEventListener("click", (e) => {
      e.preventDefault();
      let target = e.target.href;

      transition_el.classList.add("active");

      setTimeout(() => {
        window.location.href = target;
      }, 500);
    });
  }
};

let target = e.target.href; 为您提供被单击元素的 href

<a href="random.html"><i class="fas fa-random"></i>Random</a>

如果有人点击您的 link 内的斜体内容,那么它不会有 href 属性,所以您会得到 undefined


currentTarget 将为您提供事件处理程序绑定到的元素。