创建一个cookie来控制Jquery切换的内容
Creating a cookie to control Jquery toggled content
我想添加一个cookie来控制我的可折叠内容是显示还是隐藏。显示站点加载时的默认值。到目前为止,我尝试过实现cookie,但失败了,所以原始代码如下所示。
<script type="text/javascript">
$(document).ready(function(){
$(".toggle_parent").toggle(function(){
$(".toggled_content").slideUp();
$("img.upmid").attr('src',"images/downmid.png");
},function(){
$(".toggled_content").slideDown();
$("img.upmid").attr('src',"images/upmid.png");
});
});
</script>
您可以这样做:每次状态更改时设置一个cookie值,并在页面加载时检查该cookie值,以将初始状态设置为与之前设置的cookie值匹配:
添加此CSS使默认状态为关闭,因此如果所需的结束状态为关闭状态,它最初不会显示为打开,然后关闭:
.toggled_content {display: none;}
添加此javascript:
<script type="text/javascript">
$(document).ready(function(){
function hideContent() {
$(".toggled_content").slideUp();
$("img.upmid").attr('src',"images/downmid.png");
}
function showContent() {
$(".toggled_content").slideDown();
$("img.upmid").attr('src',"images/upmid.png");
}
// set initial state based on cookie value
// assumes default state is closed
if (readCookie("updown") == "down") {
showContent();
}
$(".toggle_parent").toggle(function(){
hideContent();
createCookie("updown", "up", 30)
},function(){
showContent();
createCookie("updown", "down", 30);
});
});
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name,"",-1);
}
</script>
去商店,随便买一包饼干。当你吃每一块饼干时,如果饼干中含有巧克力,就把里面的东西折叠起来,否则就把它膨胀起来
更重要的是,我推荐使用jQuery cookie插件,它允许您设置、获取或删除cookie。在父级上放置一个ID,在折叠内容时,在名称中设置一个包含该ID的cookie。展开时取消设置。页面加载时检查cookie;如果存在,进行slideUp调用等
您可能还想看看jQueryUI——这里有一些有用的功能可以显示和隐藏内容,比如手风琴。
如果您不介意使用jQuery插件,可以使用jQuery cookie。它使用起来非常简单。
设置cookie:
$.cookie("cookie name", "value");
获取cookie值:
alert($.cookie("cookie name"));
相关文章:
- 如果类不是一个选项,如何在使用 jQuery 时控制(避免)嵌套 html 元素的样式
- 使用jQuery控制来自图像的音频
- JQuery代码语法问题?(“不允许内联控制结构”)
- 使用 jquery 控制两个选择输入的组合值
- 使用 CSS 和 jQuery 控制切换按钮
- 使用 Jquery 控制文本值
- 如何使用 Jquery 控制要在下拉列表中显示的选项
- 使用javascript/JQuery控制Piecemaker 2
- 使用jQuery控制HTML5<音频>要素
- 当我使用append函数附加某个内容时,我无法使用jquery控制它
- 使用onhashchange或jquery控制Back按钮
- 如何用jquery控制响应模板
- 如何使用jquery控制渐变速度
- 用JQuery控制CSS浮动
- Javascript/jQuery:控制执行顺序(还没有ajax/php)
- jQuery控制标签的边框颜色
- 如何用jquery控制第二个父元素
- 使用jQuery控制. fadeout()
- 使用jQuery控制HTML5视频
- 使用Jquery控制动态内容