当我单击移动菜单汉堡包按钮时,什么也没有发生。我预计,尽管这两个事件似乎都不会触发,但汉堡菜单会发生变化,移动菜单也会显示。
我知道我进入了我的JavaScript MobileMenu.js文件,但是.click()事件似乎没有触发,因为我没有从该事件获得任何响应。我确实收到一条控制台日志,并显示消息“进入MobileMenu!”。但我没有得到“您单击它!”事件内部的消息。另外,由于汉堡菜单没有转换为X,因此CSS也不会触发。
我在控制台日志或gulp构建或gulp监视上没有任何错误。我所有的软件包也是最新的。我已经工作了一段时间了,我需要另一双眼睛看我所缺少的。
谢谢!
MobileMenu.js
console.log("Got into the MobileMenu!");
class MobileMenu{
constructor() {
this.menuIcon = $(".site-header__menu-icon");
this.siteHeader = $(".site-header__nav");
this.menuContent = $(".site-header__btn-container");
this.events();
}
events() {
this.menuIcon.click(this.toggleTheMenu).bind(this);
}
toggleTheMenu() {
console.log("You clicked it!");
this.siteHeader.toggleClass("site-header--is-expanded");
this.menuContent.toggleClass("site-header__menu-content--is-visible");
this.btnContent.toggleClass("site-header__btn-container--is-visible");
}
}
export default MobileMenu;
HTML
<div class="site-header__menu-icon">
<div class="site-header__menu-icon__middle"></div>
</div>
<ul class="site-header__logo" role="navigation">
<li class=""><a href="/"><h2>Logo name</h2></a></li>
</ul>
<ul class="site-header__nav">
<li class="site-header__nav--item"><a href="#about">About Me</a></li>
<li class="site-header__nav--item"><a href="#what">What I Do</a></li>
<li class="site-header__nav--item"><a href="#portfolio">Portfolio</a></li>
</ul>
<ul class="site-header__btn-container">
<li>
<a href="#" class="btn btn__nav btn--orange open-modal">Get in Touch</a>
</li>
</ul>
</header>
CSS-一些
position: absolute;
width: 100%;
z-index: 2;
font-family: 'Aclonica', sans-serif;
padding-bottom: 20px;
&--is-expanded {
background-color: rgba($mainBlue, .55);
}
@mixin atMedium {
display: flex;
position: fixed;
height: 65px;
padding-top: 4px;
background-color: rgba($mainBlue, .9);
transition: background-color .3s ease-out;
list-style: none;
color: #fff;
&--dark {
background-color: rgba(23, 51, 72, .85);
}
}
我预计当单击菜单按钮时,移动菜单将变为可见,并且菜单内容将填充。
答案 0 :(得分:0)
答案。发现问题不在于代码,而在于构建过程。脚本未正确编译。谢谢你的建议。