Jquery — измените свойство CSS (но не добавляйте атрибут «style» в div)

#jquery

#jquery

Вопрос:

у меня есть код, подобный этому:

     if ($(this).css("background-color")==="rgb(217, 217, 217)") {
        $(this).css("background-color", "#999");
    }else{
        $(this).css("background-color", "#fff");
    }
  

но bg color rgb (217,217,217) — это эффект изменения цвета при наведении курсора мыши…

когда я меняю цвет bg моего div ….. —> jquery добавляет «style=» … » атрибут в мой DIV,

но после этого мой код наведения курсора css больше не работает, потому что атрибут «style» блокирует мой атрибут «class»…

Итак, как я могу изменить атрибуты класса jquery CSS, не добавляя атрибут style = «» непосредственно в мой DIV?

Спасибо за любую помощь

это моя демонстрационная версия fiddle

https://jsfiddle.net/qcvcga8k/24/

пожалуйста, нажмите на имя «Мануэль Нойер» (1-й в списке) и после того, как BG изменился на серый, нажмите еще раз на имя …. BG снова меняется на белый, НО эффект наведения отсутствует…

я был бы очень рад, если у вас есть какие-либо подсказки для меня 😉

Спасибо

Алекс

Комментарии:

1. Сделайте стиль классом и выполняйте $(this).addClass('myClass'); вместо того, чтобы делать это с .css(...)

2. это не было целью! но я нашел решение с этим здесь: $ (this).attr(‘class’, ‘greyRow’); ———> Спасибо за вашу помощь!

3. Извините, что вмешиваюсь, но $(this).attr('class', 'greyRow'); неэффективно используется jQuery, у которого есть специальные методы для управления значениями класса.

Ответ №1:

Определите класс CSS для этого в <style> элементе:

 tr:selected { background-color: #999 }
  

Затем замените свой код:

 if ($(this).css("background-color")==="rgb(217, 217, 217)") {
    $(this).css("background-color", "#999");
}else{
    $(this).css("background-color", "#fff");
}
  

с помощью этого:

 $(this).toggle('.selected');