首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jQuery保持切换状态

问使用jQuery保持切换状态
EN

Stack Overflow用户
提问于 2013-01-01 11:10:05
回答 2查看 6K关注 0票数 3

可能重复: jQuery Toggle和Cookie

我有一个简单的切换,但是当页面刷新时,切换总是重置,所以我想通过设置cookie来保持它的状态,但是我不知道该如何做。

知道我该怎么保持切换的状态吗?

http://jsfiddle.net/Qyufx/

代码语言:javascript
复制
<div class="question_trigger">
   <p>Hi</p>
</div>
<div class="toggle_container">
   <div class="block">Hello</div>
</div>


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

​

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-01 12:43:06

使用cookie的解决方案:

代码语言:javascript
复制
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);
    });
});​

小提琴

票数 5
EN

Stack Overflow用户

发布于 2013-01-01 11:53:25

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

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

代码语言:javascript
复制
jQuery(document).ready(function(){
    if(<?php echo (isset($_SESSION['userId']['toggleState'] && $_SESSION['userId']['toggleState'] === FALSE) ? 'true' : 'false'; ?>)
        $('.toggle_container').hide();
});

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

代码语言:javascript
复制
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数据库值)

代码语言:javascript
复制
<?php
    $_SESSION['userId']['toggleState'] = (isset($_POST['data']) && $_POST['data'] === 'true') ? true : false;
?>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14109903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档