Javascript 如何将LocalStorage添加到按钮以更改颜色

Javascript 如何将LocalStorage添加到按钮以更改颜色,javascript,html,css,local-storage,Javascript,Html,Css,Local Storage,我很难将LocalStorage添加到按钮中以更改为核心,这是javascript中的新功能,我们希望在我的个人博客上实现此功能 $(document).ready(function () { $(".header--theme-button").on("click", function() { var primaryColor = localStorage.getItem("--theme-primary"); var secondaryColor = localStorage.ge

我很难将LocalStorage添加到按钮中以更改为核心,这是javascript中的新功能,我们希望在我的个人博客上实现此功能

$(document).ready(function () {

$(".header--theme-button").on("click", function() {
  var primaryColor = localStorage.getItem("--theme-primary");
  var secondaryColor = localStorage.getItem("--theme-primary");

  var primaryColor = $(this).css("--theme-primary");
  var secondaryColor = $(this).css("--theme-secondary");


  $().change(function () {
    var primaryColor = $(this).val();
    $('.header--theme-button').css("--theme-primary");
    localStorage.setItem("--theme-primary", primaryColor);
    var secondaryColor = $(this).val();
    $('.header--theme-button').css("--theme-secondary");
    localStorage.setItem("--theme-primary", secondaryColor);
  });

  $(".header--theme-button").removeClass("active");
  $(this).addClass("active");

  $(document.body).css("--primary-color", primaryColor);
  $(document.body).css("--secondary-color", secondaryColor);
});

});
HTML:

CSS:

嗨!试试这个!现在他想起了最后的选择

嗨!试试这个!现在他想起了最后一个选择

欢迎来到stackoverflow。 代码中有一些错误。主要是覆盖了
primaryColor
secondaryColor

这应该起作用:

$(document).ready(function() {
  var primaryColor = localStorage.getItem("--primary-color");
  console.log("localstorage primary: " + localStorage.getItem("--primary-color"));
  $(document.body).css("--primary-color", primaryColor);

  var secondaryColor = localStorage.getItem("secondary");
  console.log("localstorage secondary: " + localStorage.getItem("--secondary-color"));
  $(document.body).css("--secondary-color", secondaryColor);

  $( ".header--theme-button" ).each(function() {
    if($(this).css("--theme-primary")==primaryColor){
      console.log("found active element: "+primaryColor);
      $(".header--theme-button").removeClass("active");
      $(this).addClass("active");
    }
  });

  $(".header--theme-button").on("click", function() {

     $(".header--theme-button").removeClass("active");
     $(this).addClass("active");

     var primaryColor = $('.active').css("--theme-primary");
     console.log("primaryColor: " + primaryColor);
     localStorage.setItem("--primary-color", primaryColor);
     $(document.body).css("--primary-color", primaryColor);

     var secondaryColor = $('.active').css("--theme-secondary");
     console.log("secondaryColor: " + secondaryColor);
     localStorage.setItem("--secondary-color", secondaryColor);
     $(document.body).css("--secondary-color", secondaryColor);
   });
 });
我做了一个测试(因为本机stackoverflow内联代码段不起作用),所以您可以直接看到它在那里起作用。通过按下左上角的“运行”按钮,您可以重新加载代码,并看到旧颜色保持不变

干杯, 保罗

欢迎来到stackoverflow。 代码中有一些错误。主要是覆盖了
primaryColor
secondaryColor

这应该起作用:

$(document).ready(function() {
  var primaryColor = localStorage.getItem("--primary-color");
  console.log("localstorage primary: " + localStorage.getItem("--primary-color"));
  $(document.body).css("--primary-color", primaryColor);

  var secondaryColor = localStorage.getItem("secondary");
  console.log("localstorage secondary: " + localStorage.getItem("--secondary-color"));
  $(document.body).css("--secondary-color", secondaryColor);

  $( ".header--theme-button" ).each(function() {
    if($(this).css("--theme-primary")==primaryColor){
      console.log("found active element: "+primaryColor);
      $(".header--theme-button").removeClass("active");
      $(this).addClass("active");
    }
  });

  $(".header--theme-button").on("click", function() {

     $(".header--theme-button").removeClass("active");
     $(this).addClass("active");

     var primaryColor = $('.active').css("--theme-primary");
     console.log("primaryColor: " + primaryColor);
     localStorage.setItem("--primary-color", primaryColor);
     $(document.body).css("--primary-color", primaryColor);

     var secondaryColor = $('.active').css("--theme-secondary");
     console.log("secondaryColor: " + secondaryColor);
     localStorage.setItem("--secondary-color", secondaryColor);
     $(document.body).css("--secondary-color", secondaryColor);
   });
 });
我做了一个测试(因为本机stackoverflow内联代码段不起作用),所以您可以直接看到它在那里起作用。通过按下左上角的“运行”按钮,您可以重新加载代码,并看到旧颜色保持不变

干杯,
Paul

仍然没有保存到本地存储仍然没有保存到本地存储将本地存储添加到按钮有点困难将本地存储添加到按钮有点困难如何保存活动的按钮?在准备好的函数$(“.header--theme button”)的末尾包括它。每个(函数(){if($(this.css(“--theme primary”)==primaryColor){console.log(“find”);$(“.header--theme button”).removeClass(“active”);$(this.addClass(“active”);});顺便问一下:您是否删除了已接受的应答标签?我还将此代码添加到回答中非常感谢您的帮助,我删除了它,因为我认为该主题将结束,并且不会有更多的答案,我是该论坛的新手。当然!没什么大不了的。但这些帖子会永远保留(除非有人手动删除)。因此,对答案和问题进行投票,并将其标记为被接受的答案是有帮助的。因此,其他有类似问题的人和搜索引擎找到了解决方案。很高兴我能帮忙。如何保存激活的按钮?在准备好的函数$(“.header--theme button”)的末尾包括它。每个(函数(){if($(this.css(“--theme primary”)==primaryColor){console.log(“find”);$(“.header--theme button”).removeClass(“active”);$(this.addClass(“active”);});顺便问一下:您是否删除了已接受的应答标签?我还将此代码添加到回答中非常感谢您的帮助,我删除了它,因为我认为该主题将结束,并且不会有更多的答案,我是该论坛的新手。当然!没什么大不了的。但这些帖子会永远保留(除非有人手动删除)。因此,对答案和问题进行投票,并将其标记为被接受的答案是有帮助的。因此,其他有类似问题的人和搜索引擎找到了解决方案。很高兴我能帮忙。