如何在同一页面上使用两个具有相同功能的不同 css 的切换按钮? [英] How to use Two Toggle buttons on same page having same function with different css?

查看:37
本文介绍了如何在同一页面上使用两个具有相同功能的不同 css 的切换按钮?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在努力在菜单栏和页脚页面上添加 2 个具有不同样式 (css) 的切换按钮.它们将用于夜间和黑暗模式.

I have been trying to hard to add 2 Toggle Buttons having different styles (css) on Menu Bar and footer page. They are to be used for night and dark mode.

但是当我使用

onclick="themeToggle()" id="theme-switcher" 

对于这两个按钮,只有一个有效.

for both of the buttons, only one of them works.

这是我的切换按钮测试页.

这是正在使用的js:

 var tSwitcher = document.getElementById('theme-switcher');
let element = document.body;

 let onpageLoad = localStorage.getItem("theme") || "";
 if(onpageLoad != null && onpageLoad  == 'dark-mode'){
      tSwitcher.checked = true;
 } 
 element.classList.add(onpageLoad);


function themeToggle(){
      if(tSwitcher.checked){
          localStorage.setItem('theme', 'dark-mode');
            element.classList.add('dark-mode');
        } else {
          localStorage.setItem('theme', '');
            element.classList.remove('dark-mode');
        }
    }

这是两个切换按钮的代码

This is the code for Two Toggle buttons

<预><代码><label class="switch" style="padding: 23px 0;"><input type="checkbox" onclick="themeToggle()" id="theme-switcher"><div><span></span>

请帮助我解决代码问题.

Kindly help me in solving the issue with the code as well.

感谢您的帮助.

推荐答案

因为你在 <input type="checkbox" onclick="themeToggle()" id="theme-switcher">,您在其他 checkbox 中重复.所以只会获取 DOM 中的第一个 ID.

Because you are using ID in <input type="checkbox" onclick="themeToggle()" id="theme-switcher">, which you repeat in other checkbox. so only first ID in the DOM will be taken.

更改您的

并更新以下代码

注意:不要重复ID

var tSwitcher = document.getElementsByClassName('theme-switcher');
let element = document.body;

let onpageLoad = localStorage.getItem("theme") || "";
if (onpageLoad != null && onpageLoad == 'dark-mode') {
        for(let i = 0; i<tSwitcher.length; i++){
                tSwitcher[i].checked = true;    
    }

}

if(onpageLoad) element.classList.add(onpageLoad);

因此将您的 themeToggle() 更新为

  function themeToggle() {
    if (event.target.checked) {
      localStorage.setItem('theme', 'dark-mode');
      element.classList.add('dark-mode');
    } else {
      localStorage.setItem('theme', '');
      element.classList.remove('dark-mode');
    }
  }

这篇关于如何在同一页面上使用两个具有相同功能的不同 css 的切换按钮?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆