javascript - 单击菜单链接时切换类

标签 javascript jquery html css

我有一个汉堡包按钮“.btn” - 单击时,它会显示一个包含三个菜单项的下拉菜单。 “.menu”是显示:无; “.show”是显示: block

<script type="text/javascript">
        $(".btn").on("click",function(){
          $('.menu').toggleClass("show");
        });
</script>

我希望类在单击任何菜单项时从“显示”切换回“菜单”- 假设它们是指向页面下部的 anchor 链接。我尝试向每个菜单项添加一个类并实现反向逻辑:

$(".menuLink").on("click",function(){
              $('.show').toggleClass("menu");
            });

^ 遗憾的是,这不起作用,并以未样式化的方式(蓝色链接)显示覆盖菜单栏的所有链接。

HTML

            <div class="menu">
                <a href="#product">THE PRODUCT</a>
                <a href="#story">THE STORY</a>
                <a href="contact.html">CONTACT</a>
            </div>

CSS

.menu {
    position: absolute;
    width: 100%;
    display: none;
    top: 60px;
    left: 0;
    right: 0;
    max-height: 0px;
}

.menu a {
    display: inline-block;
    width: 100%;
    text-align: center;
    padding: 20px 0px;
    text-decoration: none;
    color: #ddc170;
    font-family: 'Oswald', sans-serif;
    letter-spacing: 2px;
    font-size: 15pt;
}

.show {
    display: block;
    max-height: 500px;
    background: rgba(30, 30, 30, 0.9);
}

任何帮助都会很棒。谢谢。

最佳答案

您可以使用 jQuery .text() 方法根据其当前文本设置菜单链接的文本。

.menu {
    position: absolute;
    width: 100%;
    display: none;
    top: 60px;
    left: 0;
    right: 0;
    max-height: 0px;
}

.menu a {
    display: inline-block;
    width: 100%;
    text-align: center;
    padding: 20px 0px;
    text-decoration: none;
    color: #ddc170;
    font-family: 'Oswald', sans-serif;
    letter-spacing: 2px;
    font-size: 15pt;
}

.show {
    display: block;
    max-height: 500px;
    background: rgba(30, 30, 30, 0.9);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a class="menuLink">Show</a>
<div class="menu">
     <a href="#product">THE PRODUCT</a>
     <a href="#story">THE STORY</a>
     <a href="contact.html">CONTACT</a>
</div>
<script>
$(".menuLink").on("click",function(){
    $(".menu").toggleClass("show");
    $(this).text()=="Show"?$(this).text("Hide"):$(this).text("Show");
});
</script>

关于javascript - 单击菜单链接时切换类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51794777/

相关文章:

javascript - 在 Coffeescript 中创建带有可选参数的匿名函数

javascript - 如何禁用 spry 选项卡式面板中的选项卡单击?

html - 具有不同 <li> 高度的内联导航中的 100% 高度链接

javascript - 根据IP地址加载某些页面元素

javascript - ChartJS x轴标签显示全部

javascript - WebGL 计算机图形学 vec4?

javascript - 使列表可点击(jquery/html)

php - 导航菜单不在位

javascript - 在登录表单上显示错误消息

jquery - 解析 ASP.Net 中的 JSON 对象数组