问题可在以下URL重新创建:
http://streeten-new.streeten.co.uk/
出于某种原因,removeClass并未删除'submenuActive'类,我知道我的目标是正确的元素,因为向其添加测试类是没有问题的。
我尝试使用纯JavaScript而不是jQuery来做到这一点,我尝试直接使用jQuery更改css,而不是添加/删除类-在所有情况下,当子菜单出现时,我都无法撤消对该元素所做的任何更改首先打开。
令人沮丧的是,因为打开开发工具并突出显示
<ul class="submenuActive">
然后解开
.submenuActive {
left: 0!important;
}
规则完全按照我希望的方式隐藏子菜单,由于某种原因,我无法在单击时使该子菜单正常工作。
HTML代码已添加:
<nav>
<div class="navigation">
<ul >
<li><a href="#">Studio</a></li>
<li class="parent"><a href="#">Projects</a>
<ul>
<li><a href="#">Portfolio</a></li>
<li><a href="#">Case Studies</a></li>
</ul>
</li>
<li class="parent"><a href="#">Services</a>
<ul>
<li class="menuTitle"><span class="backArrow">❮</span> Services</li>
<li><a href="#">Branding</a></li>
<li><a href="#">Web Design</a></li>
<li><a href="#">Online Marketing</a></li>
<li><a href="#">Marketing</a></li>
</ul>
</li>
<li><a href="#">Blog</a></li>
<li><a href="#">Contact</a></li>
</ul>
<a id="tel" href="tel:02076313720"><button>Call us now</button></a>
<!-- <p>for your free design consultation</p>-->
</div>
</nav>
JavaScript代码已添加:
$(".parent").click(function(){
$(this).find("ul").first().addClass("submenuActive");
});
$(".menuTitle").click(function(){
$(this).closest("ul").removeClass("submenuActive");
$(this).closest("ul").addClass("test");
});
当您单击子菜单项时,单击事件会使DOM冒泡并重新触发对父级的单击。尝试用以下方法抑制这种情况:
$(".menuTitle").click(function(e){
e.stopPropagation();
$(this).closest("ul").removeClass("submenuActive");
$(this).closest("ul").addClass("test");
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句