UnluckySerivelha
@UnluckySerivelha

Почему повторно срабатывает событие mouseover, если курсор не покидает элемента?

Есть задача сделать, чтобы при наведении на блок срабатывала функция. Пытаюсь использовать mouseover. Но почему-то это событие срабатывает даже когда курсор перемещается внутри элемента по дочерним элементам, а нужно, чтобы только 1 раз при наведении и повторно только если курсор ушёл с элемента. Почему так? Как в таком случае решить задачу?
  • Вопрос задан
  • 1201 просмотр
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
Используйте mouseenter вместо mouseover. Ну и нелишним будет ознакомиться с вот этим.
Ответ написан
Комментировать
@DronTat
Использовать mouseenter
Обращаю Ваше внимание, что в отличие от события "mouseover", событие "mouseenter" срабатывает только тогда, когда указатель мыши входит в выбранный элемент. Событие "mouseover" срабатывает даже тогда, когда указатель мыши переходит с родительского элемента на дочерний (вложенный) и с дочернего элемента обратно на родительский не смотря на то, что указатель в этот момент не покидал пределы родительского элемента (event bubbling).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@frees2
var i = 0;
$('.item').on('mouseover',function(){$(this).remove();
  i++;
  $('#output').html(i);
})

mouseover решение иногда полезно для борьбы с ботами, ну вы поняли фокус. Это как входит, а как выходит вторая функция. На mouseenter так не получится
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
21 нояб. 2024, в 23:30
300000 руб./за проект
21 нояб. 2024, в 22:21
3000 руб./в час
21 нояб. 2024, в 21:42
100000 руб./за проект