【问题标题】:How to set jQuery Cookie for slideDown menu?如何为 slideDown 菜单设置 jQuery Cookie?
【发布时间】:2013-12-09 03:48:30
【问题描述】:

我有一个 slideDown 菜单,我想记住菜单的最后一个状态,以便在页面加载时已经选择了最后一个状态。我正在尝试通过使用jQuery.cookie 来实现这一点,这就是我所做的:

$("#menu h3").click(function(){
    $("#menu ul ul").slideUp();
    if(!$(this).next().is(":visible")){
        var id = $(this).attr('id');   
        $.cookie(id, $(this).is(':visible') ? "closed" : "open");
        if ($.cookie(id) == "open") {
            $(this).next().slideDown();
        }
    }
});

>> jsFiddle <<
当我重新加载页面时,我没有得到最后一个状态,.slideDown() 不起作用。 谁能帮帮我?

谢谢!

【问题讨论】:

    标签: jquery cookies slidedown jquery-cookie


    【解决方案1】:

    我稍微修改了您的代码。试试这个:

    var active = $.cookie('active'),
        $h3 = $("#menu h3"),
        $activeH3 = $h3.filter('#' + active);
    
    $h3.click(function(e, speed) {
        $("#menu ul ul").slideUp(speed);
        if (!$(this).next().is(":visible")) {
            $(this).next().slideDown(speed);
            $.cookie('active', this.id);
        }
    });
    
    if ($activeH3.next().is(':hidden')) {
        $activeH3.trigger('click', [0]);
    }
    

    确保您还为 h3 元素设置了 ID。

    演示http://jsfiddle.net/K4pUV/1/

    【讨论】:

    • 非常感谢@dfsq!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-15
    • 1970-01-01
    • 2012-08-14
    相关资源
    最近更新 更多