jQuery Slide切换菜单cookie问题

时间:2015-06-11 11:09:33

标签: jquery css cookies

我在WordPress中创建了一个slideToggle下拉菜单。我刚刚将我的代码上传到JSFiddle。您可以看到演示here

我想在所有子菜单上打开切换菜单。我正在尝试使用cookies。

$(document).ready(function () {
    if ($.cookie('panel') == 'open') {
        $('.dropdown-menu').slideDown();
    } else {
        $('.dropdown-menu').slideUp();
    }

    $('.fixed-navbar').on('click', '.dropdown', function () {
        $('.dropdown-menu').slideToggle(function () {
            if ($(this).is(':hidden')) {
                $.cookie('panel', 'closed');
            } else {
                $.cookie('panel', 'open');
            }
        });
    });
});

我正在使用https://github.com/carhartl/jquery-cookie插件。

出于某种原因,它无法正常工作。

1 个答案:

答案 0 :(得分:0)

为什么不做丹麦443建议的呢?

尝试:

var $menu_with_children = $('.menu-item-has-children > a');

$menu_with_children.on('click', function(e){
    e.preventDefault();
    var $this = $(this);
    if (!$this.parent().find('> .sub-menu').hasClass('visible')) {
        $this.parent().find('> .sub-menu').addClass('visible').slideDown('slow');
    } else{
        $this.parent().find('> .sub-menu').removeClass('visible').slideUp('slow');
    }
});

和css

ul.sub-menu{
    display: none;
}

您可以添加此

$('#menu-main-menu li').each(function() {
    if($(this).find('> .sub-menu').length) {
        $(this).find('> a').append('+');
    }
}); 

而不是+将箭头放下图标,以便您可以看到可以展开的菜单。