Jakie są różnice między jQuery .mouseover()
a .hover()
funkcjami? Jeśli są całkowicie takie same, dlaczego jQuery używa obu?
Jakie są różnice między jQuery .mouseover()
a .hover()
funkcjami? Jeśli są całkowicie takie same, dlaczego jQuery używa obu?
Odpowiedzi:
.mouseover()
.hover()
Powiąż jeden lub dwa programy obsługi z dopasowanymi elementami, które zostaną wykonane, gdy wskaźnik myszy
wejdzie i opuści elementy.
Wywołanie $(selector).hover(handlerIn, handlerOut)
jest skrótem od:
$(selector).mouseenter(handlerIn).mouseleave(handlerOut);
Powiąż procedurę obsługi zdarzeń, która ma być uruchamiana, gdy mysz wchodzi do elementu, lub wyzwalaj tę procedurę obsługi na elemencie.
mouseover
uruchamia się, gdy wskaźnik przesuwa się również do elementu podrzędnego, natomiast mouseenter
uruchamia się tylko wtedy, gdy wskaźnik przesuwa się do elementu związanego.
Z tego powodu, .mouseover()
to nie to samo co .hover()
, z tego samego powodu .mouseover()
jest nie taka sama jak .mouseenter()
.
$('selector').mouseover(over_function) // may fire multiple times
// enter and exit functions only called once per element per entry and exit
$('selector').hover(enter_function, exit_function)
.hover()
funkcja przyjmuje dwa argumenty funkcji, jeden dla mouseenter
zdarzenia i jeden dla mouseleave
zdarzenia.
Możesz to wypróbować http://api.jquery.com/mouseover/ na stronie dokumentacji jQuery. To ładne, interaktywne demo, które sprawia, że jest bardzo jasne i możesz się o tym przekonać.
Krótko mówiąc, zauważysz, że zdarzenie myszy nad elementem występuje na elemencie, gdy jesteś nad nim - pochodzącym z jego elementu podrzędnego LUB nadrzędnego, ale zdarzenie wejścia myszą występuje tylko wtedy, gdy mysz przesuwa się z elementu nadrzędnego do elementu.
Z oficjalnej dokumentacji: ( http://api.jquery.com/hover/ )
Metoda .hover () wiąże programy obsługi dla zdarzeń mouseenter i mouseleave. Możesz go użyć, aby po prostu zastosować zachowanie do elementu, gdy mysz znajduje się w elemencie.
Jak możesz przeczytać na http://api.jquery.com/mouseenter/
Zdarzenie JavaScript mouseenter jest zastrzeżone dla programu Internet Explorer. Ze względu na ogólną użyteczność zdarzenia jQuery symuluje to zdarzenie, dzięki czemu może być używane niezależnie od przeglądarki. To zdarzenie jest wysyłane do elementu, gdy wskaźnik myszy wchodzi do elementu. To zdarzenie może otrzymać każdy element HTML.