Простое скрытие/показ часто задаваемых вопросов, которое сохраняется в файле cookie.
-
13-11-2019 - |
Вопрос
Почему файл cookie не сохраняется при обновлении страницы?
Или было бы лучше сохранить только 1 файл cookie со значением каждого li с «.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>
С использованием: https://raw.github.com/carhartl/jquery-cookie/master/jquery.cookie.js
Решение
Вы создаете другое cookie для каждого индекса, и они никогда не совпадают с тем, кого вы ищете на странице нагрузки.Кроме того, у вас есть разное имя файлов файлов cookie 'hideshow-id' vs 'hideshow_id'
Другие советы
if($.cookie('hideShow-id') == index){
и
$.cookie('hideShow_id' + tisindex, tisindex);
это явно два совершенно разных файла cookie
РЕДАКТИРОВАТЬ:
Вы также ужасно злоупотребляете index
.Прежде всего, это функция, а не свойство.Но даже в этом случае при загрузке и щелчке вы будете получать разные индексы, потому что вы путаете два разных индекса.
tis.parents("li").index()
является индексом, если li
тег среди своих братьев и сестер, где как
.each(function(index, value)
даст вам индекс в наборе, который вы повторяете, что явно представляет собой два разных набора из-за .not(".active")
часть.