2013-10-15 3 views
1
<p class='sent' id='abc'>abc</p> 
<p class='sent' id='abb'>abb</p> 
<p class='sent' id='acc'>acc</p> 

CSSJavaScript блоки 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 не работает!?

+2

Потому что вы установили цвет по умолчанию как цвет наведения, поэтому, очевидно, визуального изменения не будет. – ediblecode

+1

Это потому, что вы устанавливаете встроенный стиль. – CBroe

+1

@danrhul Я думаю, что есть несколько элементов '.sent', поэтому он хочет, чтобы текущий выбранный ** или ** парящий элемент имел цвет' # e1e1e1'. – h2ooooooo

ответ

2

Inline-стили имеют приоритет над правилами, определенными в блоках стиля.

Попробуйте удалить background-color стиль вместо того, чтобы установить его в transparent:

$(".sent").click(function() { 
    $(".sent").css("background-color", ""); 
    $(this).css("background-color", "#e1e1e1"); 
}); 
+0

спасибо, Фредерик, решил – bonaca

1

Закомментируйте

$('.sent').css('background-color', 'transparent'); 
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; 
} 
+0

Это не будет отменять другие элементы '.sent', которые, похоже, хотят того, чего хочет OP. – h2ooooooo

+0

@ h2ooooooo проверить обновленный код .. –

0

Добавление !important на ваш CSS будет делать трюк.

.sent:hover{ 
background-color:#e1e1e1 !important; 
} 

Это быстрое и легкое исправление. Вам следует избегать использования !important в вашем CSS.

+1

Хотя это сработает, это по своей сути плохая практика. Если вы чувствуете необходимость использовать '! Important', это обычно означает, что ваш CSS плохой. – ediblecode

Смежные вопросы