2015-09-23 123 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'在點擊時切換真與假,但如果菜單需要保持打開狀態,如果錯誤應該淡出,我該如何適當調整我的代碼? –