【问题标题】:Catching a CSS change with jQuery使用 jQuery 捕捉 CSS 变化
【发布时间】:2015-06-04 08:08:41
【问题描述】:

我想做的是通过 CSS 找出元素的 CSS 值何时发生更改。假设背景颜色已更改为其他颜色。例如使用 :hover。

起初我以为 Mutation Observer 会解决这个问题,但我错了。当 CSS 文件中元素的样式发生更改时,它不会影响该元素的样式属性。例如,假设我有一个 id 为“test”的元素:

$('#button').click(function () {
    $('#test').css('backgroundColor', 'blue');
});

Mutation Observer 将其检测为样式更改。

但是在 CSS 文件中执行此操作不会触发事件:

#test:hover
{
    background-color: blue;
}

所以我要问的是 - 有没有办法找出,最好是使用 jQuery,什么时候在 CSS 文件中对元素进行了更改?

【问题讨论】:

    标签: jquery mutation-observers


    【解决方案1】:

    不,很遗憾不是(除非它被 javascript 改变了——这不是你的情况)。

    您唯一要做的就是指定为什么您想要这样做,也许会有一种方法以不同的方式满足您的要求。你可能会成为 XY 问题的受害者:

    https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem

    注意:显然,使用元素的background-color 的持续轮询可以达到一定的准确度(取决于您检查的频率),但我不建议这样做。

    【讨论】:

    • 谢谢,我明白了。我将做一个不同的线程来解释我为什么需要这个。也许有不同的方式。
    猜你喜欢
    • 2010-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-14
    • 1970-01-01
    • 2018-10-10
    相关资源
    最近更新 更多