jquery - 使用 jquery 动态更改背景颜色后,用于背景颜色的 CSS 悬停选择器不起作用

标签 jquery css hover

我使用 jquery .css() 方法动态更改 div 的背景颜色。我还希望在同一个 div 上有一个 CSS hover 选择器来改变背景颜色。看起来在用jquery改变颜色之前,CSS hover选择器可以工作,但是在用jquery方法改变div之后,CSS hover选择器不再起作用了。有没有办法解决这个问题(不使用 jquery hover 方法)?

这是我所说的示例:http://jsfiddle.net/KVmCt/1/

最佳答案

您遇到的问题是 CSS 信息位置的重要性:

文档头部的 CSS 覆盖了外部样式表;这反过来又被元素的 style 属性中的 CSS 所控制。基本上,浏览器遇到的最后一种样式会覆盖任何先前指定的和其他冲突的规则(除非使用关键字 !important)。

作为 JavaScript,因此也是 jQuery,将其 CSS/样式信息放入元素的内联 style 属性中,这总是会覆盖在其他地方指定的冲突样式。 p>

divcolor: red 更为重要,忽略了 div:hover 样式。

要解决它,您可以使用:

div:hover {
    background-color: blue!important;
}

JS Fiddle demo .

不过,更好的解决方案是避免使用 jQuery 分配 background-color/other 样式,而只使用 CSS:

div {
    background-color: red;
}

div:hover {
    background-color: blue!important;
}

或者,您可以使用 jQuery 的 hover() 方法:

$('div').css('background-color','red').hover(
    function(){
        $(this).css('background-color','blue');
    },
    function(){
        $(this).css('background-color','red');
    });

JS Fiddle demo .

关于jquery - 使用 jquery 动态更改背景颜色后,用于背景颜色的 CSS 悬停选择器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8949194/

相关文章:

javascript - Jquery ajax post 带有计时器事件?

javascript - 生成并下载网页截图而不丢失样式

css - 如何在不填充内容的情况下向重复的 CSS 背景添加填充?

css - Bootstrap 链接按钮和按钮的宽度不一样。怎么修?

jquery - 我如何解决 JQuery 中的这个旋转图像问题?

JQuery 背景色 Chrome

javascript - 在其他函数中作为参数传递的函数被乘法触发

jquery - 关闭彩盒

javascript - jQuery:如何在整个文档主体中全局获取我悬停的最里面的 dom 元素?

jquery - 悬停效果社交网络图标