为什么按钮会触发前一个元素/标签的事件?

您所在的位置:网站首页 js代码触发点击事件 为什么按钮会触发前一个元素/标签的事件?

为什么按钮会触发前一个元素/标签的事件?

#为什么按钮会触发前一个元素/标签的事件?| 来源: 网络整理| 查看: 265

我不确定是什么导致表单按钮在单击并启用暗模式后触发将页面主题变回白色的事件。不确定这是否会造成混淆,但是例如,如果您打开页面,它会自动进入浅色模式主题,当您单击“深色”将主题切换为深色,然后在主题处于“”时单击“搜索”按钮暗”,页面将切换回“亮”。我做错了什么或错过了什么?请指教。另外,我怎样才能更好更简单地折射这个 JS?

谢谢!

HTML - 故意遗漏了头部

devfinder LIGHT DARK Search

JS

const themeBtn = document.querySelectorAll(".theme-toggle-btn"); const toggle = function (e) { if (e.currentTarget.classList.contains("light-hidden")) { document.documentElement.setAttribute("color-mode", "light"); localStorage.setItem("color-mode", "light"); return; } document.documentElement.setAttribute("color-mode", "dark"); localStorage.setItem("color-mode", "dark"); }; themeBtn.forEach((btn) => { btn.addEventListener("click", toggle); });

CSS

:root { --monoFont: 'Space Mono', monospace; --accent-blue: #0079FF; --error-red: #F74646; --light-hover: #60ABFF; } :root[color-mode="light"] { --primary-text-color:#697C9A; --secondary-text-color: #4B6A9B; --accent-color: #2B3442; --background-color: #F6F8FF; --container-background: #FEFEFE; --font-color: #222731; } :root[color-mode="dark"] { --primary-text-color: #FFFFFF; --background-color: #141D2F; --container-background: #1E2A47; } *, *::before, *::after { box-sizing: border-box; } :root[color-mode="light"] .light-hidden, :root[color-mode="dark"] .dark-hidden { display: none; } body { display: flex; flex-direction: column; align-items: center; justify-content: center; background-color: var(--background-color); height: 100vh; margin: 0; color: var(--primary-text-color); font-family: var(--monoFont); } .header-container { display: flex; align-items: center; justify-content: space-between; margin-bottom: 2em; } .header-container, .content-container { width: 100%; max-width: 730px; } /* header title */ .title { color: var(--font-color); font-size: 1.63rem; } /* theme toggle btn */ .theme-toggle-btn { background-color: var(--background-color); border: none; color: var(--primary-text-color); font-size: .7rem; font-weight: 700; letter-spacing: 1.5px; cursor: pointer; } .theme-toggle-btn img { margin: 0 0 -0.45em 0.75em; width: 20px; height: 20px; } /* search form */ .form { position: relative; display: flex; align-items: center; height: 69px; } .form input { background-color: var(--container-background); border: none; width: 100%; padding-left: 1.5em; margin-bottom: 2em; color: var(--font-color); font-size: 1.05rem; font-family: inherit; font-weight: 400; border-radius: 10px; box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 12px;; } .form input::placeholder { color: var(--secondary-text-color); } .btn { position: absolute; top: 50%; right: 10px; transform: translateY(-80%); width: 100%; max-width: 106px; height: 50px; background-color: var(--accent-blue); border: none; color: #FFFFFF; font-size: 1rem; border-radius: 10px; cursor: pointer; } .btn:hover { background-color: var(--light-hover); } 解决方案

我认为当您单击“搜索”按钮时,它会刷新页面并重新加载 html 模板。因为在 html 元素中有“color-mode="light",所以它将以亮模式而不是暗模式加载页面。

2022年最受欢迎的8大编程语言

为什么都说程序员找不到女朋友,但是身边程序猿的却没一个单身的

30岁以上你还死磕技术,别说拿高薪,可能你连饭碗都会保不住

程序员被开除,老板:“有你参与的项目全黄了!”

笑话:一个测试工程师走进一家酒吧

趣图:程序员头疼的4种原因

笑话:面试官:请拿出一段体现你水平的代码。我: sudo rm -rf /*面试官:这体现了你哪方面能力?

网友说:做开发,不被领导喜欢怎么办?

前端精选:在 WPF 中实现融合效果

网友说:我奉劝各位,一定不能在职场透露自己的家庭条件



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3