【问题标题】:Save toggle in jQuery在 jQuery 中保存切换
【发布时间】:2011-12-15 15:22:51
【问题描述】:

我在屏幕底部有一个登录表单,可以通过滑动开关切换打开和关闭。我怎么会这样,如果用户更改页面打开或关闭状态保持不变? Ajax 更新面板可能吗?这是我用于切换的 JQuery 代码:

       <script type="text/javascript">
          if ($('#divLoginFootForm').is(":visible")) {
              $('#divLoginFootForm').show();

          }
          else {
              $('#divLoginFootForm').show();

          }

          $('.log').click(function () {
              $('#divLoginFootForm').slideToggle('slow', function () {
                  // Animation complete

              });
          });



</script> 

谢谢!

【问题讨论】:

  • 你的意思是当他们离开并返回该页面时它会记住切换状态?
  • 确实或导航到站点内的其他页面。我正在使用母版页。
  • 以下任何答案有帮助吗?您可以将可见值保存到 cookie(如下所述),然后使用 .toggle(bool) 将初始切换设置为存储在 cookie 中的切换。查看api.jquery.com/toggle
  • 我还没有尝试过。我觉得 cookie 解决方案在理论上应该有效。我之前创建了 cookie。我会告诉你的。

标签: c# javascript jquery asp.net html


【解决方案1】:

您可以使用cookie 来维护状态。看看这个例子

http://www.electrictoolbox.com/jquery-cookies/

【讨论】:

    【解决方案2】:

    将表单的可见状态存储到 cookie。在后续请求中,从 cookie 中读取可见状态并将其应用于表单。

    您可以轻松地合并this page on quirksmode for reading/writing/deleting cookies 中的三个功能。

    【讨论】:

    • 我当然在考虑使用 cookie。感谢您的链接!
    【解决方案3】:

    在隐藏字段中跟踪切换状态,然后在页面初始加载时设置切换状态。您需要使用隐藏字段,因为该值必须在客户端和服务器上都可以访问。客户端之一,当用户切换状态时,设置隐藏字段的 val 以反映状态。

    那么,由于您使用的是asp.net,因此在回发之间将保留状态,并且您可以在代码隐藏中控制初始状态等。

    如果您使用 cookie,则状态将在用户可能打开的页面的所有实例之间共享(即在多个选项卡中),这可能不是您想要的。

    编辑:Here's a question,它说明了如何使用 jquery 设置隐藏字段的值。

    【讨论】:

    • 如何获取状态并将其返回到该字段?我也可以使用全局变量来做同样的事情。
    • 客户端无法访问页面中的全局变量。
    • 是的,但是当用户切换可见性时它不会更新,因为这只发生在客户端上。
    【解决方案4】:

    你有几个选择:

    1. Cookie

    2. 会话项目集合(如果您使用的是 ASP.Net)

    Cookie 可能是有益的,因为它不是特定于您的网络平台的,而 jQuery 可以自己完成。

    如果您想将其保存在代码中而不是将其写入 cookie,那将是很好的选择。

    如果服务器没有理由知道这个状态,我建议使用 cookie。

    【讨论】:

    • 我正在使用 ASP.Net。您能详细说明一下会话项目的收集吗?
    • HttpContext.Current.Session[keyStr] 是一个简单的 HttpSessionState 项目集合。我用它来补充饼干。它非常易于使用和理解 - msdn.microsoft.com/en-us/library/… - 是帮助您入门的快速文档。同样,如果只有您的客户端脚本需要知道,那么我会建议像其他人一样使用 cookie。
    猜你喜欢
    • 2014-05-22
    • 1970-01-01
    • 2013-08-16
    • 1970-01-01
    • 2023-03-25
    • 2014-08-13
    • 1970-01-01
    • 1970-01-01
    • 2015-10-04
    相关资源
    最近更新 更多