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

求助:点击切换class为pole的div背景色(红/白)功能异常

问题分析

你的代码存在两个关键错误,导致无法实现背景色切换:

  1. 代码第一行jQuery(this).css("background", "white")会强制将背景设为白色,直接覆盖元素点击前的状态,后续判断完全失效。
  2. if (jQuery(this).css("background", "#ffffff"))是赋值操作而非条件判断,这行代码会先把背景设为#ffffff,且因赋值操作返回的jQuery对象为真值,永远会进入if分支将背景改为红色,自然无法切回白色。
解决方案

推荐用CSS类切换的方式实现,这种方法分离样式与逻辑,更易维护且兼容性更好:

步骤1:添加自定义CSS

在Oxygen Builder的自定义CSS区域添加以下样式:

.pole {
    background-color: white; /* 默认背景色 */
}
.pole.bg-red {
    background-color: red; /* 点击后的背景色 */
}

步骤2:修改JS代码

替换原JS代码为:

jQuery(".pole").on("click", function() {
    jQuery(this).toggleClass("bg-red");
});

原理说明

toggleClass方法会自动判断元素是否包含指定类:如果有则移除,没有则添加,以此实现背景色的切换效果。后续要修改颜色只需调整CSS,无需改动JS逻辑。


如果一定要直接通过JS操作样式(不推荐),需注意浏览器返回的背景色格式可能是rgb(255,255,255)而非#ffffff或white,需兼容多种格式:

jQuery(".pole").on("click", function() {
    const $pole = jQuery(this);
    const currentBg = $pole.css("backgroundColor");
    // 判断当前是否为白色,兼容多种返回格式
    if (currentBg === "white" || currentBg === "#ffffff" || currentBg === "rgb(255, 255, 255)") {
        $pole.css("backgroundColor", "red");
    } else {
        $pole.css("backgroundColor", "white");
    }
});

内容的提问来源于stack exchange,提问作者Adrian N

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 23:01:23