我这里有一个酒吧 - http://jsfiddle.net/3pxnjocp/4/ - 在翻身时获得图片背景。单击小方框时,我想将条形更改为红色并在翻转时保持红色。有谁知道为什么我的代码没有这样做?单击框会在栏中添加一个带有悬停伪元素版本的类,该版本甚至具有!important
,但会选择具有图像背景的原始悬停样式。
感谢。
$(function(){
var flag=false;
$('#flag').click( function() {
if(!flag) {
$('#flag').css('background-color', 'red');
$('#box').addClass('alwaysRed');
flag = true;
}
else {
$('#flag').css('background-color', 'white');
$('#box').removeClass('alwaysRed');
flag=false;
}
})
});
答案 0 :(得分:2)
'none'
不应在background-image
中引用。
#box.alwaysRed:hover {
background-image: none; // no !important required
}
是所有需要的:
var flag=false;
$('#flag').click( function() {
if(!flag) {
$('#flag').css('background-color', 'red');
$('#box').addClass('alwaysRed');
flag = true;
}
else {
$('#flag').css('background-color', 'white');
$('#box').removeClass('alwaysRed');
flag=false;
}
})

#box {
width:100px;
height:26px;
border:1px solid black;
float:left;
}
#box:hover{
background-image: url('http://s3.postimg.org/wkct91733/bar_Background.png');
}
#flag {
width:26px;
height:26px;
border:1px solid black;
float:left;
margin-left:30px;
}
#box.alwaysRed {
background-color:red;
}
#box.alwaysRed:hover {
background-image: none;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="box"></div>
<div id="flag"></div>
&#13;
答案 1 :(得分:1)
这是一个有效的解决方案http://jsfiddle.net/3pxnjocp/5/
#box.alwaysRed {
background:red !important;
}
你的jQuery代码按预期工作,只是你的css不是应该的。