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

jQuery获取点击元素CSS属性异常:点击按钮得到hover背景色问题排查

为什么点击按钮获取到的是:hover状态的背景色?

嘿,这个问题我之前踩过坑!原因其实特别直观——当你点击按钮的那一刻,鼠标还没来得及离开按钮,此时元素正处于:hover的激活状态,所以$(this).css('background-color')会读取当前生效的hover样式,而不是默认状态的背景色。

下面给你两个实用的解决办法:

方法1:延迟读取样式

给获取操作加一个极短的延迟,等:hover状态自动消失后再读取,10毫秒就足够了,用户完全感知不到延迟:

$('button').click(function() {
  setTimeout(() => {
    const bgColor = $(this).css('background-color');
    console.log(bgColor);
  }, 10);
});

方法2:提前存储默认背景色

如果按钮的默认背景色不会动态变化,你可以在页面加载时就把默认值存起来,点击时直接用这个预存的值:

// 页面加载完成时存储默认背景色
const defaultBtnBg = $('button').css('background-color');

$('button').click(function() {
  console.log(defaultBtnBg); // 直接使用预存的默认值
});

如果你的按钮背景色是动态修改过的(比如点击后手动改变过),优先用第一种方法,它能准确获取到修改后的非hover状态颜色。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:10:01