Una semplice pelle / spettacolo per le domande frequenti che salva in cookie
-
13-11-2019 - |
Domanda
Perché non è salvataggio del cookie quando si aggiorna la pagina?
o sarebbe una pratica migliore per salvare solo 1 cookie con il valore di ogni li con ".active"
var hideshow = $(".hideShow");
hideshow.children().not(".active").each(function(index, value){
var tis = $(this);
if($.cookie('hideShow_id'+index) == index){
tis.addClass(".active");
} else {
$(this).find("div").hide();
}
});
hideshow.find('h3').click(function(e){
var tis = $(this);
var tisindex= tis.parents("li").index;
$.cookie('hideShow_id' + tisindex, tisindex);
tis.next().slideToggle('2000');
tis.parent().toggleClass('active');
e.preventDefault();
});
<ul class="hideShow">
<li class="active">
<h3><a href="javascript:;">Pellentesque nec leo cursus ipsum rhoncus volutpat nec eget mi.</a></h3>
<div>
<p>Nam velit metus, vulputate eget sodales ut, dignissim vehicula nisi. Lorem ipsum dolor sit amet</p>
<ul>
<li>
<strong>Pellentesque</strong> nec leo cursus ipsum rhoncus volutpat nec eget mi.</li>
<li>
<strong>Nam</strong> quis lectus enim, ac euismod urna.</li>
<li>
<strong>Donec</strong> varius massa augue, at feugiat tortor.</li>
</ul>
</div>
</li>
<li>
<h3><a href="javascript:;">Pellentesque nec leo cursus ipsum rhoncus volutpat nec eget mi.</a></h3>
<div>
<p>Nam velit metus, vulputate eget sodales ut, dignissim vehicula nisi. Lorem ipsum dolor sit amet</p>
<ul>
<li>
<strong>Pellentesque</strong> nec leo cursus ipsum rhoncus volutpat nec eget mi.</li>
<li>
<strong>Nam</strong> quis lectus enim, ac euismod urna.</li>
<li>
<strong>Donec</strong> varius massa augue, at feugiat tortor.</li>
</ul>
</div>
</li>
<li>
<h3><a href="javascript:;">Pellentesque nec leo cursus ipsum rhoncus volutpat nec eget mi.</a></h3>
<div>
<p>Nam velit metus, vulputate eget sodales ut, dignissim vehicula nisi. Lorem ipsum dolor sit amet</p>
<ul>
<li>
<strong>Pellentesque</strong> nec leo cursus ipsum rhoncus volutpat nec eget mi.</li>
<li>
<strong>Nam</strong> quis lectus enim, ac euismod urna.</li>
</ul>
</div>
</li>
</ul>
.
Usando: https://raw.github.com/carhartl / jquery-cookie / master / jquery.cookie.js
Soluzione
Stai creando un cookie diverso per ciascun indice e non corrispondono mai a quello che cerchi sul carico della pagina.Inoltre, si dispone di diverse stringhe dei biscotti 'Hideshow-ID' VS 'HIDESHOW_ID'
Altri suggerimenti
if($.cookie('hideShow-id') == index){
.
e
$.cookie('hideShow_id' + tisindex, tisindex);
.
sono chiaramente due cookie completamente diversi
Modifica:
Sei anche in modo orribile infornere index
.Prima di tutto è una funzione, non una proprietà.Ma anche allora, avrai indici diversi sul carico e fai clic perché stai confondendo due diversi indici
tis.parents("li").index()
.
è l'indice se il tag li
tra i suoi fratelli, dove come
.each(function(index, value)
.
ti darà l'indice all'interno del set che sei interating, che sono chiaramente due set diversi, a causa della parte .not(".active")
.