Различаются между mouseover () и mouseenter () в jQuery
В jQuery событияmouseover() иmouseenter() срабатывают, когда мышь входит в совпадающий элемент. Единственное отличие - это способ дескриптора «event bubbling» в дочернем элементе, давайте рассмотрим два сценария:
1. НЕТ дочернего элемента
Если у совпадающих элементов нет дочернего элемента, событияmouseover() иmouseenter() работают точно так же. Смотрите сами попробуйте ниже.
2. С дочерним элементом внутри
Если у совпадающих элементов есть дочерний элемент, событияmouseover() иmouseenter() работают по-разному, как «event bubbling»:
Например, «externalBox» содержит дочерний элемент «innerBox».
OuterBoxInnerBox
P.S Assure both outerBox and innerBox are attached to certain events.
mouseover()
-
Когда мышь входит в «externalBox», запускает событие «externalBox».
-
Когда мышь входит в «innerBox», запускает событие «innerBox», а затем событие «externalBox».
-
Когда мышь возвращается в «externalBox», запускается событие «externalBox».
mouseenter()
-
Когда мышь входит в «externalBox», запускает событие «externalBox».
-
Когда мышь входит в «innerBox», запускает событие «innerBox».
-
Когда мышь возвращается в «externalBox», никакое событие не сработает.
Да, это довольно запутанно и понять словами, давайте поймем это, играя на следующем примере:
Попробуй сам
jQuery mouseover() vs mouseenter() example
mouseover() - no child elementOuterBox#mouseover is fired : 0mouseenter() - no child elementOuterBox#mouseenter is fired : 0mouseover() - with child elementsOuterBox#mouseover outer is fired : 0InnerBox
#mouseover inner is fired : 0mouseenter() - with child elementsOuterBox#mouseenter outer is fired : 0InnerBox
#mouseenter inner is fired : 0