2015-09-23 155 views
-1

我有一个切换菜单,我也想添加一个cookie,这样如果页面刷新或用户转到网站上的其他页面,菜单将保持打开状态,这里是我当前的代码:切换菜单以在切换时添加Cookie /删除Cookie

$('nav #mobileMenu').on('click', function(){ 
     var isToggled = $(this).data('isToggled'); 
     if(isToggled){ 
      $("nav#menu").addClass("mobileMenuActive"); 
      $("nav ul").fadeIn(1000); 
      $("nav em").fadeOut('fast');  
     } else { 
      $("nav#menu").removeClass("mobileMenuActive"); 
      $("nav ul").fadeOut(1000); 
      $("nav em").fadeIn('fast'); 
     } 

     $(this).data('isToggled', !isToggled) 
    }); 

我已经尝试了许多尝试,但他们没有做什么,我想这是当用户首次单击“导航#mobileMenu的,然后取出饼干应增加,如果用户点击“nav #mobileMenu”后再次点击“nav#mobileMenu”,则该类将被移除'mobileMenuActive',cookie将保留1天,如果他们转到该网站的另一个页面,刷新页面菜单仍然会有班级'mobileMenuAc tive'

回答

1

您需要使用一个名为jQuery.cookie的插件来使所有的cookie变得更容易。

$('nav #mobileMenu').on('click', function() { 
    // Get it from the cookie or data. 
    if ($.cookie('isToggled') != undefined) 
     var isToggled = $.cookie('isToggled'); 
    else 
     var isToggled = $(this).data('isToggled'); 
    if(isToggled) { 
     $("nav#menu").addClass("mobileMenuActive"); 
     $("nav ul").fadeIn(1000); 
     $("nav em").fadeOut('fast'); 
    } else { 
     $("nav#menu").removeClass("mobileMenuActive"); 
     $("nav ul").fadeOut(1000); 
     $("nav em").fadeIn('fast'); 
    } 

    $(this).data('isToggled', !isToggled) 
    $.cookie('isToggled', !isToggled, { expires: 7, path: '/' }); 
}) 
+0

感谢Praveen对于 –

+0

@GrahamBarnes可选的好友。你放得更好。 –

+0

不幸的是,当用户转到网站上的另一个页面时,菜单不会保持打开状态,我可以在萤火虫中看到Cookie'isToggled'在点击时切换真与假,但如果菜单需要保持打开状态,如果错误应该淡出,我该如何适当调整我的代码? –