为了账号安全,请及时绑定邮箱和手机立即绑定

切换到另一个显示器后 JavaScript 停止工作

切换到另一个显示器后 JavaScript 停止工作

肥皂起泡泡 2023-07-20 10:41:10
每次我更改一个 HTML 文件中的显示时,JS 都会停止工作(我尝试用onclickJS 函数替换 HTML 调用,但它仍然是相同的)UPD:抱歉解释不好。问题是,如果我通过单击nav面板上的链接(例如从#main到#contacts或#cart)从该网站的主显示屏移动,JS 脚本会停止响应汉堡图标单击(单击汉堡导航面板以获得 800px 的屏幕最大宽度,什么也不做)代码:const burger = document.querySelector('.burger i');const nav = document.querySelector('.nav');function toggleNav() {  burger.classList.toggle('fa-bars');  burger.classList.toggle('fa-times');  nav.classList.toggle('nav-active');}burger.addEventListener('click', function() {  toggleNav();});html,body {  margin: 0;  padding: 0;  font-family: Arial, sans-serif;}.header {  width: 100%;  height: 70px;  display: flex;  align-items: center;  justify-content: space-around;  background: #ffffff;  color: #343434;  border-bottom: 1px solid #343434;  border-top: 1px solid #343434;}.logo {  letter-spacing: 3px;}.nav {  display: flex;  justify-content: space-around;  width: 30%;}.navlink {  list-style: none;  margin: 0;}.navlink a {  color: #343434;  text-decoration: none;  font-size: 1.2em;}.burger {  font-size: 1.2em;  display: none;}@media screen and (max-width: 800px) {  .burger {    display: block;  }  .nav {    margin: 0;    background: #ffffff;    position: absolute;    right: -100%;    top: 70px;    width: 50%;    height: calc(100% - 70px);    flex-direction: column;    justify-content: space-around;    padding: 0;    transition: all 400ms;  }  .navlink {    text-align: center;  }  .nav-active {    right: 0;  }}
查看完整描述

1 回答

?
侃侃尔雅

TA贡献1801条经验 获得超15个赞

问题是您.burger的 HTML 中有多个事件,而您只为第一个事件定义了 Javascript 事件。您可以通过以下方式解决此问题:

const burgers = document.querySelectorAll('.burger i');

for (let burger of burgers) {
    //define your event
}

但这不是最好的方法。您可以做的最好的事情就是重构您的 HTML 并使用单个项目.burger class,但具有更可靠的事件。


查看完整回答
反对 回复 2023-07-20
  • 1 回答
  • 0 关注
  • 150 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信