在页面刷新后保持切换类

我以为这已经做了很多次,但尽管阅读了一些关于cookie的post无法让我理解它。

我基本上有一个第二个body类,为整个站点提供不同的字体,当客户端点击链接更改字体时可以访问。 理想情况下,这不会是逐页的,但新类在访问新页面后会“坚持”。 我通过jquery更改类代码如下所示:

$(document).ready(function() { $("a#switcher").click(function() { $("body").toggleClass("alternate_body"); }); }); 

是否有一种相对简单的方法来实现这一目标? 提前致谢。

Cookie方法

您可以使用jQuery插件(如jquery-cookie)来简化cookie访问。 所以你的代码会变成这样的东西来保存类设置:

 $(document).ready(function() { var body_class = $.cookie('body_class'); if(body_class) { $('body').attr('class', body_class); } $("a#switcher").click(function() { $("body").toggleClass("alternate_body"); $.cookie('body_class', $('body').attr('class')); }); }); 

url参数

另一种选择是在页面点击#switcher时在页面的所有链接上设置URL参数,以保持状态而不设置cookie。

使用Cookie或HTML5引入的全新本地存储 。 您还可以创建一些服务器会话解决方案,您可以通过AJAX调用获得先前的设置。

你肯定需要使用cookies。

首先,您需要下载jQuery cookie插件并将其添加到您的页面。

然后在上面的示例中,您需要在更改主体类时设置cookie:

 $("a#switcher").click(function() { $("body").toggleClass("alternate_body"); $.cookie('bodyClass', 'alternate_body'); }); 

然后在页面加载时,检查cookie并根据需要设置body类:

 $("BODY").addClass($.cookie('bodyClass')); 

您可以使用cookie在页面刷新后保存它。 只需将类保存在cookie中并在需要时读取(刷新后)。 如果您不知道cookie的工作原理,请按照以下示例进行操作:

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

第二个选项是调用php函数将其保存到数据库中(我不知道这是为用户登录时的?),但是你可以将它保存在数据库中以保存并稍后读取,所以当有人删除了他的互联网历史记录,或者去了另一台具有相同布局的计算机。

迎接,斯特凡。