Unterschied zwischen mouseover () und mouseenter () in jQuery
In jQuery werden sowohlmouseover() als auchmouseenter() Ereignisse ausgelöst, wenn die Maus das übereinstimmende Element betritt. Der einzige Unterschied besteht in der Art des Handles "event bubbling" im untergeordneten Element. Sehen wir uns zwei Szenarien an:
1. KEIN Kindelement
Wenn die übereinstimmenden Elemente kein untergeordnetes Element haben, funktionieren die Ereignissemouseover() undmouseenter()genau gleich. Probieren Sie es unten aus.
2. MIT Kindelement nach innen
Wenn die übereinstimmenden Elemente ein untergeordnetes Element haben, funktionieren sowohlmouseover() als auchmouseenter() Ereignisse anders als „event bubbling“:
Beispielsweise enthält eine "OuterBox" ein untergeordnetes Element "InnerBox".
OuterBoxInnerBox
P.S Assure both outerBox and innerBox are attached to certain events.
mouseover()
-
Wenn die Maus in die "OuterBox" eintritt, wird das "OuterBox" -Ereignis ausgelöst.
-
Wenn die Maus in die "InnerBox" eintritt, lösen Sie das "InnerBox" -Ereignis aus, gefolgt vom "OuterBox" -Ereignis.
-
Wenn die Maus wieder in die "OuterBox" eintritt, wird das "OuterBox" -Ereignis ausgelöst.
mouseenter()
-
Wenn die Maus in die "OuterBox" eintritt, wird das "OuterBox" -Ereignis ausgelöst.
-
Wenn die Maus in die "innerBox" eintritt, wird das "innerBox" -Ereignis ausgelöst.
-
Wenn die Maus wieder in die "OuterBox" eintritt, wird kein Ereignis ausgelöst.
Ja, es ist ziemlich verwirrend und in "Worten" zu verstehen. Lassen Sie es uns anhand des folgenden Beispiels verstehen:
Versuch es selber
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