1

我在一些使用 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

4 回答 4

4

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

$("#yourbutton").click(function() {
    $("#yourmenu").toggle();
});
于 2012-08-16T17:40:22.243 回答
1

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

$("#button").on('click', function() {
    $("#menu").toggle();
});
于 2012-08-16T17:42:21.613 回答
1

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

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

于 2012-08-16T17:46:08.513 回答
1

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

$('#yourMenu').toggle()

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

于 2012-08-16T17:40:56.643 回答