簡體   English   中英

如何將箭頭 function 變成 if/else 語句?

[英]How do I turn an arrow function into an if/else statement?

我的切換菜單遇到了一個小問題。 漢堡包 animation 工作正常,單擊鏈接后,它會將您帶到我頁面的該部分,並刪除我的 CSS 助手 class “無法滾動”我的切換菜單溢出。 但是,如果您想查看菜單,請在不單擊菜單項的情況下將其關閉 - “鎖屏”class 仍然適用。 我有點像 JavaScript newb,如果關閉菜單后沒有單擊鏈接,我是否需要將事件偵聽器添加到添加新變量/函數的 if/else 語句中以啟用滾動?


const navToggle = document.querySelector(".nav-toggle");
const navLinks = document.querySelectorAll(".nav__link");

navToggle.addEventListener("click", () => {
  document.body.classList.toggle("nav-open");
  document.body.classList.add("lockscreen");
});

navLinks.forEach((link) => {
  link.addEventListener("click", () => {
    document.body.classList.remove("nav-open");
    document.body.classList.remove("lockscreen");
  });
});

您可以在主體上添加一個事件偵聽器,以便菜單外的任何點擊都將刪除“鎖屏”,或者更復雜的方法是在偵聽器 function 中使用 if/else 來檢查當前 event.target = == '一些元素'


const navToggle = document.querySelector(".nav-toggle");
const navLinks = document.querySelectorAll(".nav__link");


navToggle.addEventListener("click", () => {
  document.body.classList.toggle("nav-open");
  document.body.classList.add("lockscreen");
});

navLinks.forEach((link) => {
  link.addEventListener("click", () => {
    document.body.classList.remove("nav-open");
    document.body.classList.remove("lockscreen");
  });
});

document.body.addEventListener("click", () => {
    document.body.classList.remove("lockscreen");
})

注意冒泡,在此處閱讀有關傳播、捕獲和冒泡的更多信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM