添加元素后,无法从元素中删除该类

卢克·托梅(Luke Twomey)

问题可在以下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">&#10094</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");
    });
j08691

当您单击子菜单项时,单击事件会使DOM冒泡并重新触发对父级的单击。尝试用以下方法抑制这种情况:

$(".menuTitle").click(function(e){
    e.stopPropagation();
    $(this).closest("ul").removeClass("submenuActive");
    $(this).closest("ul").addClass("test");
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章