Pregunta

¿Por qué no guardar la cookie cuando actualice la página?

http://jsfiddle.net/jBVBL/

O sería mejor práctica para guardar sólo 1 cookie con el valor de cada li con ".activa"

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> 

El uso de: https://raw.github.com/carhartl/jquery-cookie/master/jquery.cookie.js

¿Fue útil?

Solución

Está creando una cookie diferente para cada índice, y nunca coinciden con la que busca en la carga de la página.Además, tiene diferentes cadenas de nombres de cookies 'Hideshow-ID' vs 'hideshow_id'

Otros consejos

 if($.cookie('hideShow-id') == index){

y

 $.cookie('hideShow_id' + tisindex, tisindex);

son claramente los dos completamente diferentes de las cookies

EDITAR:

También está horriblemente mal uso de index.En primer lugar es una función, no una propiedad.Pero incluso entonces, usted va a obtener diferentes índices de carga y haga clic en porque estás confundiendo dos índices diferentes

tis.parents("li").index()

es el índice, si el li etiqueta de entre sus hermanos, donde como

.each(function(index, value)

le dará el índice dentro del conjunto que se itera, que son claramente los dos conjuntos diferentes, debido a la .not(".active") parte.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top