【发布时间】:2018-04-24 03:48:41
【问题描述】:
这是我的html代码:
<div class="accordion_container">
<div class="accordion_head" node-tag="#1">First Accordian Head<span class="plusminus">+</span>
</div>
<div class="accordion_body">
<p>First Accordian Body, it will have description</p>
</div>
<div class="accordion_head" node-tag="#2">Second Accordian Head<span class="plusminus">+</span>
</div>
<div class="accordion_body">
<p>Second Accordian Body, it will have description</p>
</div>
<div class="accordion_head" node-tag="#3">Third Accordian Head<span class="plusminus">+</span>
</div>
<div class="accordion_body">
<p>Third Accordian Body, it will have description</p>
</div>
</div>
这是我的 js 脚本
$(document).ready(function () {
//toggle the component with class accordion_body
$(".accordion_head").click(function () {
var tag = $(this).attr("node-tag");
if ($(this).next(".accordion_body").is(':visible')) {
$(this).next(".accordion_body").slideUp(300);
$(this).next(".accordion_body").addClass("collapsed");
Cookies.set('collapsed_Nodes', (Cookies.get('collapsed_Nodes') || '')+tag, { expires: 7, path: '' });
$(this).children(".plusminus").text('+');
} else {
$(this).next(".accordion_body").slideDown(300);
$(this).next(".accordion_body").addClass("expadned");
Cookies.remove('collapsed_Nodes', (Cookies.remove('collapsed_Nodes') || '')+tag, { expires: 7, path: '' });
$(this).children(".plusminus").text('-');
}
});
});
我的问题是,如果我点击折叠,它可以工作,但是当我点击扩展时,它无法从 cookie 中删除值,它只会将值添加到 cookie...
谁能帮我找出这个问题?
这里是js fiddle 链接
【问题讨论】:
-
我不太了解
Cookies对象的使用,但我有点困惑为什么你试图给 remove 方法赋值,而我认为它会只需完全删除 cookie。另外我很好奇是否可以通过再次设置 cookie 来实现相同的效果,只是过期时间为 0。 -
或者实际上,如果您想要做的是将标签从cookie中取出并留下其他标签,您是否不只是获取cookie,解析它,删除标签,然后设置cookie再次使用不包含标签的新值?
-
@MaxZoom 我修好了,你可以再试一次jsfiddle.net/carry0987/xpvt214o/170365
-
您是否只是尝试删除仅提供名称?像这样 'Cookies.remove('collapsed_Nodes');'
-
@MaxZoom 抱歉,我的回复晚了,Cookies.remove('collapsed_Nodes');只会删除整个 collapsed_Nodes cookie...
标签: jquery jquery-cookie