繁体   English   中英

带有添加和删除类的下拉菜单jQuery

[英]dropdown menu jquery with add and remove class

所以我试图使添加和删除类的jQuery下拉列表。 它确实有效,但是只有一次。 如果我再次尝试该下拉菜单,它只会下拉然后立即向上滑动。 假设单击一个按钮后下拉,然后再次单击滑动。

$(document).ready(function() {
        //dropdown menu function
        $(".menuDrop").click(function(){
            $(".nav").slideDown("slow");
            $(".menuDrop").addClass("btn-hover");
            $(".menuDrop").click(function(){
                $(".nav").slideUp("slow");
                $(".menuDrop").removeClass("btn-hover");
            });
        });
    });

“ btn-hover”类旨在添加与单击按钮后处于悬停状态时相同的CSS。

- 编辑 -

<div class="menu">
    <div class="col-lg-12">
        <button type="button" class="menuDrop btn btn-default btn-lg">
            <span class="glyphicon glyphicon-chevron-down"></span>
        </button>

        <ul class="nav">
            <li><a class="link" href="#">home</a></li>
            <hr>
            <li><a href="#">portfolio</a></li>
        </ul>
    </div>
</div>

使用slideToggle和toggleClass应该可以帮助您实现这一目标,并且代码更少:

//dropdown menu function
$(".menuDrop").click(function(){
    $(".nav").slideToggle("slow");
    $(".menuDrop").toggleClass("btn-hover");
});

这是一个小提琴: http : //jsfiddle.net/scesR/

希望有帮助!

使用change事件而不是click事件来绑定它。

$(".menuDrop").change(function(){
            $(".nav").slideDown("slow");
            $(".menuDrop").addClass("btn-hover");
            $(".menuDrop").click(function(){
                $(".nav").slideUp("slow");
                $(".menuDrop").removeClass("btn-hover");
            });
        });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM