jQuery не понимает селектор li:hover

180
07 июля 2018, 03:00

Есть код:

$("li:hover").prev("li:first").css("border-top-right-radius","15px");

При наведении на li, он не срабатывает.
Почему?

Answer 1

Потому что псевдокласс селектора :hover описывает состояние, которое не может быть выбрано как элемент.

Вы можете выбрать элемент, и отслеживать на нем событие наведения курсора.
Для отслеживания наведения, в jQuery есть функция hover:

$('li').hover(function (e) {   
  highlight.call($(this), true); 
}, function (e) { 
  highlight.call($(this), false); 
}); 
 
function highlight (isIn = true) { 
  let prev = this.prev(); 
  let next = this.next(); 
   
  if (prev.length > 0 && prev.prop('tagName') === 'LI') { 
    prev.css({color: isIn ? 'red' : 'black'}); 
  } 
  if (next.length > 0 && next.prop('tagName') === 'LI') { 
    next.css({color: isIn ? 'green' : 'black'}); 
  } 
}
ul { 
  list-style: none; 
} 
li { 
  cursor: pointer; 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<ul> 
  <li><span>1.</span> First</li> 
  <li><span>2.</span> Second</li> 
  <li><span>3.</span> Third</li> 
  <li><span>4.</span> Fourth</li> 
</ul>

READ ALSO
Обработка редюсеров в Redux

Обработка редюсеров в Redux

У меня есть массив объектов, мне нужно менять active на true в каждом объекте по индексу

153
Mysql возвращает значения по разному

Mysql возвращает значения по разному

День добрый уважаемые форумчанеСтолкнулся с такой проблемой

161
Реализация методов в LinkedList

Реализация методов в LinkedList

Всем добрый вечерПрошу помощи в таком вопросе: у меня есть LinkedList с реализованными в нем методами, не получается реализовать 3 метода: public boolean...

224