<p class='sent' id='abc'>abc</p>
<p class='sent' id='abb'>abb</p>
<p class='sent' id='acc'>acc</p>
CSS
.sent:hover{
background-color:#e1e1e1; // works until the first click on .sent
}
JS
$(".sent").click(function() {
$('.sent').css('background-color', 'transparent'); //works
$(this).css('background-color', '#e1e1e1'); //works
});
首次点击sent
css sent:hover
后无效!?
答案 0 :(得分:2)
内联样式优先于样式块中定义的规则。
尝试删除background-color
样式,而不是将其设置为transparent
:
$(".sent").click(function() {
$(".sent").css("background-color", "");
$(this).css("background-color", "#e1e1e1");
});
答案 1 :(得分:2)
尝试.one()
<p class='sent' id='abc'>abc</p>
<p class='sent' id='abb'>abb</p>
<p class='sent' id='acc'>acc</p>
<强> JS 强>
$('.sent').one( 'click',function(){
$(this).addClass('sent_clicked');
});
或
$('.sent').one( 'click',function(){
$('.sent').addClass('sent_clicked');
});
<强> CSS 强>
.sent_clicked:hover{
background-color:#e1e1e1;
}
答案 2 :(得分:1)
评论
$('.sent').css('background-color', 'transparent');
答案 3 :(得分:0)
将!important
添加到CSS中就可以了。
.sent:hover{
background-color:#e1e1e1 !important;
}
这是一个快速简便的解决方法。您应该避免在CSS中使用!important
。