Как можно убрать :hover у элемента через JS или CSS?

У меня есть кнопка, у которой есть :hover со сменой цветов. Когда кнопка недоступна через атрибуты disable нужно сделать чтобы :hover эффекта не было

Я пробовал через

cursor: none

Но :hover всё равно срабатывал


Ответы (3 шт):

Автор решения: Maxim Kuskov

Примените два класса к соответствующему элементу. Один содержит поведение при наведении, а другой содержит все остальные стили. Вот метод, позволяющий удалить класс с поведением при наведении реализованный на jQuery:

$(element).removeClass('hover');

Вот реализация этих же действий на нативном JS:

element.classList.remove('hover'); //element это уже полученный узел DOM
→ Ссылка
Автор решения: Pavel Grishaev

Для этого есть псевдокласс :not() :

button:not([disabled]):hover {
  color: red;
}
<button>Кнопка</button> <button disabled>Кнопка не доступная</button>

→ Ссылка
Автор решения: Lev Shportak

Несколько проще и быстрее будет через CSS таким образом, при наведение на все элементы которые не disabled будет срабатывать cursor: pointer

.btn:not([disabled]):hover{
  cursor: pointer
}
→ Ссылка