为什么刷新页面时没有保存cookie?
或者更好的做法是只保存1个带有“.active”
的每个li值的cookievar 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>
使用:https://raw.github.com/carhartl/jquery-cookie/master/jquery.cookie.js
答案 0 :(得分:0)
if($.cookie('hideShow-id') == index){
和
$.cookie('hideShow_id' + tisindex, tisindex);
显然是两个完全不同的cookie
编辑:
你也非常误用index
。首先,它是一个功能,而不是一个属性。但即使这样,你也会在加载和点击时得到不同的索引,因为你混淆了两个不同的索引
tis.parents("li").index()
是其兄弟姐妹中的li
标记的索引,其中为
.each(function(index, value)
会在你正在迭代的集合中给出索引,这显然是两个不同的集合,因为.not(".active")
部分。
答案 1 :(得分:0)
您正在为每个索引创建不同的Cookie,它们永远不会与您在页面加载时查找的cookie匹配。此外,您有不同的cookie名称字符串'hideShow-id'与'hideShow_id'