javascript阻止css代码

时间:2013-10-15 08:51:31

标签: jquery html css

<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后无效!?

4 个答案:

答案 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