使用jQuery 保留切换状态

可能重复:
jQuery用Cookie切换

我有一个简单的切换,但切换总是在页面刷新时重置,所以我想通过设置一个cookie保持其状态,但我没有太多的想法我应该怎么做…

任何想法如何保持切换状态?

http://jsfiddle.net/Qyufx/

Hi

Hello
jQuery(document).ready(function(){ jQuery(".toggle_container").hide(); jQuery("div.question_trigger").click(function(){ jQuery(this).toggleClass("active").next().toggle("slow"); }); });​

使用cookie解决方案:

 jQuery(document).ready(function() { jQuery(".toggle_container").toggle($.cookie('showTop') != 'collapsed'); jQuery("div.question_trigger").click(function() { jQuery(this).toggleClass("active").next().toggle(); var new_value = $(".toggle_container").is(":visible") ? 'expanded' : 'collapsed'; $.cookie('showTop', new_value); }); });​ 

小提琴

使用PHP会话变量存储切换状态的基本解决方案

步骤1:通过检查PHP会话变量值,将容器设置为可见或不在页面加载中:

 jQuery(document).ready(function(){ if() $('.toggle_container').hide(); }); 

第2步:添加脚本以更新PHP会话变量

 jQuery(document).ready(function(){ jQuery(".toggle_container").hide(); jQuery("div.question_trigger").click(function(){ jQuery(this).toggleClass("active").next().toggle("slow"); var data = ($(this).is(":visible")) ? 'true' : 'false'; $.ajax({ url: 'ajax/update.php', method : 'post', data : {data : data}, success: function(data) { console.log('data updated'); }, error: function (request, status, error) { alert(request.responseText); } }); }); });​ 

第3步:实现ajax / update.php代码(使用真实的userId数据库值)