使用jquery使用相同的按钮隐藏和显示菜单

时间:2012-08-16 17:32:54

标签: javascript jquery

我使用jquery在一些下拉菜单上找到了一个教程。它工作正常,但我想稍微调整一下。我没有使用悬停隐藏菜单,而是想要显示菜单的相同按钮,以便在再次按下时隐藏它。因此,相同的按钮必须隐藏并显示下拉菜单。 我使用的脚本:

    $(document).ready(function () {

        $("ul.subnav").parent().append("<span></span>"); //Only shows drop down trigger when js is enabled - Adds empty span tag after ul.subnav

        $("ul.topnav li span").click(function () { //When trigger is clicked...

            //Following events are applied to the subnav itself (moving subnav up and down)
            $(this).parent().find("ul.subnav").slideDown('fast').show(); //Drop down the subnav on click

            $(this).parent().hover(function () {
            }, function () {
                $(this).parent().find("ul.subnav").slideUp('slow'); //When the mouse hovers out of the subnav, move it back up
            });

            //Following events are applied to the trigger (Hover events for the trigger)
        }).hover(function () {
            $(this).addClass("subhover"); //On hover over, add class "subhover"
        }, function () {    //On Hover Out
            $(this).removeClass("subhover"); //On hover out, remove class "subhover"
        });

    });

4 个答案:

答案 0 :(得分:4)

使用jQuery的.toggle() http://api.jquery.com/toggle/

$("#yourbutton").click(function() {
    $("#yourmenu").toggle();
});

答案 1 :(得分:1)

使用jQuery的.toggle方法可以避免添加CSS规则。

$('#yourMenu').toggle()

这将隐藏它,如果它是可见的,并显示它是否隐藏。您可以添加一个数字或'fast', 'slow'作为参数,以使其具有动画效果。

答案 2 :(得分:1)

jQuery.toggle()函数将为您完成这项工作:

$("#button").on('click', function() {
    $("#menu").toggle();
});

答案 3 :(得分:1)

是的,可以使用toggleClass。或者您也可以在javascript中定义自己的切换功能。 您可以在类之间切换或执行您想要的任何其他功能。

function tog(elemen){ if(elemen.className == "show") { hide drpdwn elemen.className="hide"; } else { make dropdwn visible elemen.className="show"; } }