douju9272 2016-12-23 19:03
浏览 9
已采纳

如何记住样式的变化?

There are so many articles about cookies and localStorage (setting, deleting...), but it's unclear for me where I should place some code.

Namely, I'm trying to change css stylesheet clicking on a button, but cannot save that choice for the next time the page is loaded. Something like:

params.php

if (user clicked on "btntheme") {
    $theme = 'green.css';    
}else{  
    $theme = "blue.css";
};

index.php

<?php include ("params.php");?>
<head>
<link id="link01" rel="stylesheet" href="<?php echo $theme;?>">
</head>

<body>
<div id="btntheme">THEME</div>
</body>

JS

$('#btntheme').click(function(){
    $('#link01').attr('href', 'green.css');
});

This changes style but only for the current session. How can I tell to params.php that in the future $theme is green.css, and not blue.css?

  • 写回答

2条回答 默认 最新

  • dsfphczao23473056 2016-12-23 19:14
    关注

    Using localStorage is very easy.

    To set

    localStorage.setItem('theme','green');
    

    To get

    localStorage.getItem('theme');
    

    So you can just use that in a function to get from LS and then set your stylesheet.

    function changeTheme(){
       var theme = localStorage.getItem('theme');
       $('#link01').attr('href', theme + '.css');
    }
    
    $('#btntheme').click(function(){
       localStorage.setItem('theme','green');
       changeTheme();
    });
    

    And you can just call that function in your document.ready function to set it on page load as well.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c