javascript - toggleClass - localStorage 在第一次加载页面时从某些元素中删除所有类。如何解决?
问题描述
我在我的网站上添加了一些 jquery 代码,当用户单击“暗模式”链接时,页面元素会改变颜色并存储在本地存储中。我在 Stackoverflow HTML5 local storage save .toggleClass上找到了一段代码,它工作正常,但是当用户由于某种原因第一次访问该网站时,我的代码所针对的元素会丢失所有原始样式。我检查了它,所有的课程都被删除了。当我点击“黑暗模式”按钮并刷新页面时,所有课程都回来了,网站运行良好。谁能告诉我如何解决它?我不知道为什么会这样。
css
.nightmode {
background: black;
}
.headerNightmode {
background: #6456A3;
}
jQuery
jQuery(document).ready(function($){
/* Write your Public custom_public jQuery here! */
var button = $('.menu-item-178 a');
var container = $('#body.page-template-default').toggleClass(window.localStorage.toggled);
var containerProfile = $('#body.page-template.page-template-page-tpl-profile').toggleClass(window.localStorage.toggled);
var containerBlog = $('#body.blog').toggleClass(window.localStorage.toggled);
var containerHeader = $('.header').toggleClass(window.localStorage.toggledHeader);
//button click
button.click(function() {
if (window.localStorage.toggled != "nightmode" && window.localStorage.toggledHeader != "headerNightmode" ) {
container.toggleClass("nightmode", true );
containerProfile.toggleClass("nightmode", true );
containerBlog.toggleClass("nightmode", true );
containerHeader.toggleClass("headerNightmode", true );
window.localStorage.toggledHeader = "headerNightmode";
window.localStorage.toggled = "nightmode";
} else {
container.toggleClass("nightmode", false );
containerProfile.toggleClass("nightmode", false );
containerBlog.toggleClass("nightmode", false );
containerHeader.toggleClass("headerNightmode", false );
window.localStorage.toggledHeader = "";
window.localStorage.toggled = "";
}
});
});
解决方案
推荐阅读
- asp.net - 在 docker-compose 中连接两个容器时连接被拒绝
- typescript - 是否可以将定义文件 index.d.ts 拆分为多个文件?
- javascript - $compile 异常行为
- oracle - 消息驱动的 EJB 无法连接 JMS 目标,说明创建 db_connection 时出错
- objective-c - 目标c:无法理解#define 宏是如何扩展的
- c++ - c++ 中具有受限参数的可变参数模板函数
- css - 图片大小不一样(css)
- php - Rest API - 将带有产品的 JSON 文件导入 Drupal 8 并使用该数据创建产品节点
- javascript - 导航覆盖汉堡菜单点击问题
- powershell - 提取给定路径的“子路径”