2016-01-05 2 views
-2

J'essaie de connecter les cookies. J'ai ceci js. Il est difficile de combiner la liste de contrôle <ul> et de brancher les cookies.Comment connecter un cookie?

<script> 
    jQuery(function($){ 
     var arrow = $('.multi-accordion li > a').next(); 
      if (arrow.length) { 
      $(arrow).parent().append('<img src="v.svg" alt="">'); 
      } 
    $('.multi-accordion li > a').on('click', function (event) { 
     var value = $('.multi-accordion li > a').index(this); 
      Mage.Cookies.set('nav-item', value); 
     var $this = $(this), $next = $this.next(); 
      if ($next.length) { 
      $next.slideToggle().parent().toggleClass('opened').siblings().children('ul').filter(':visible').slideToggle(); 
      event.preventDefault(); 
      } 
     }); 
    }); 
</script> 

Example J'ai cette fonction Js cm Magento.

Mage.Cookies.set('name', 'value'); // install cookie 
Mage.Cookies.get('name'); // get cookie 
Mage.Cookies.clear('name'); // remove cookie 
+0

Je ne vois pas le code de cookie dans votre code –

+0

J'ai eu beaucoup de tentatives. Mais ils ne travaillaient ni accordéon ni cookies. – Sylon

+0

Etes-vous en train d'essayer de sauvegarder l'état d'accordéon dans un cookie? –

Répondre

1

Pas besoin d'inclure cookie.js. Vous pouvez enregistrer l'index de l'élément de navigation dans le stockage de session. Visitez le lien ci-dessous pour le stockage de session. https://developer.mozilla.org/en/docs/Web/API/Window/sessionStorage

jQuery(function ($) { 
    // CHECK IF nav-item IS STORED IN SESSION STORAGE 
    if (sessionStorage.getItem("nav-item")) 
    { 
     $('#nav > li > a:eq(' + sessionStorage.getItem("nav-item") + ')').next().show(); 
    } 
    $('#nav > li > a').click(function() { 
     var intNavIndex = $(this).index(this); 
     // SAVE NAV INDEX TO SESSION STROAGE 
     sessionStorage.setItem("nav-item", intNavIndex); 
     $('#nav li ul').slideUp(); 
     if ($(this).next().is(":visible")) { 
      $(this).next().slideUp(); 
     } else { 
      $(this).next().slideToggle(); 
     } 
     $('#nav li a').removeClass('active'); 
     $(this).addClass('active'); 
    }); 
}); 
+0

Merci beaucoup! Seulement cela ne fonctionnera pas en accordéon. Je dois travailler cette condition '$ ('. Multi-accordéion li> a'). On ('click', function (event) {' ... 'event.preventDefault();' S'il vous plaît, aidez, utilisez votre version de mon script – Sylon

+0

Je voudrais vous suggérer que s'il vous plaît créer un jsfiddle (https://jsfiddle.net/) Donc, je peux vous aider correctement –

+0

S'il vous plaît aider. [jsfiddle] (https://jsfiddle.net/Sylon/no120eqp/10 /) – Sylon

1

Vous ne marche pas besoin de connecter cookie.js Magento a déjà une des méthodes js pour le travail avec cookie.

Comme exemple:

Mage.Cookies.set('name', 'value'); Mage.Cookies.get('name'); Mage.Cookies.clear('name');

Aussi, vous pouvez utiliser this js lib (sans jQuery)