You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript if语句无法读取条件,点击切换暗黑模式失效求助

问题原因

你的if-else判断逻辑写在全局作用域里,页面加载完成后只会执行一次——此时x初始值是0,所以会把背景设为#0A0A0A,但之后点击div修改x的值时,这段判断代码不会再被触发,自然不会更新背景色。

修复代码

把判断逻辑移到点击事件的回调函数内部,这样每次点击都会根据最新的x值执行切换:

let x = 0;
document.getElementById("darkmode").onmousedown = function darkMode(){
    x += 1;
    console.log(x);
    // 把判断移到这里
    if(x % 2 == 0){
        document.body.style.backgroundColor = "#0A0A0A";
    } 
    else {
        document.body.style.backgroundColor = "white";
    }
}
更简洁的优化方案

其实不需要用计数变量,直接用一个布尔值来记录暗黑模式的状态,切换起来更直观:

let isDarkMode = false;
document.getElementById("darkmode").onmousedown = function darkMode(){
    isDarkMode = !isDarkMode; // 每次点击取反状态
    document.body.style.backgroundColor = isDarkMode ? "#0A0A0A" : "white";
}

内容的提问来源于stack exchange,提问作者Zuhayr Elias

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 16:23:16