Prawidłowa odpowiedź to onmouseover, bo właśnie to zdarzenie w JavaScript uruchamia się w momencie, kiedy kursor myszy *wchodzi* na dany element i znajduje się nad nim. Przeglądarka monitoruje położenie kursora i gdy tylko „najedziesz” na element z przypisanym zdarzeniem onmouseover, wywoływany jest podpięty handler, na przykład funkcja w JavaScript. W praktyce często używa się tego do tworzenia efektów typu podświetlanie przycisków, rozwijane menu, podpowiedzi (tooltips) albo lekkie animacje po najechaniu. Przykładowo: `<button onmouseover="this.style.backgroundColor='orange'">Najedź na mnie</button>` – w chwili najechania myszką kolor tła przycisku się zmienia. Moim zdaniem to jedno z bardziej podstawowych zdarzeń, które warto ogarnąć na początku nauki frontendu, bo pozwala szybko zrobić stronę bardziej „żywą”. W nowoczesnym kodzie raczej unika się pisania atrybutów typu onmouseover bezpośrednio w HTML i zamiast tego stosuje się `addEventListener("mouseover", handler)` w JavaScript. Jest to zgodne z dobrymi praktykami i oddziela logikę od struktury dokumentu. Warto też wiedzieć, że onmouseover różni się od onmouseenter: onmouseover propaguje się (bąbelkuje) w górę drzewa DOM, co ma znaczenie przy bardziej złożonych interfejsach. Standardowe API DOM dokładnie opisuje te różnice i przy projektowaniu interakcji dobrze jest świadomie wybierać odpowiedni typ zdarzenia. W typowych projektach webowych onmouseover jest używany głównie do prostych reakcji na najechanie, ale trzeba pamiętać, by nie przesadzać z efektami, żeby nie przeciążyć użytkownika i nie zepsuć użyteczności strony.
W tym pytaniu łatwo się pomylić, bo wszystkie wymienione zdarzenia są związane z myszką, ale każde z nich opisuje inny, dość precyzyjny moment interakcji użytkownika z elementem. Kluczowe jest zrozumienie, że pytanie dotyczy sytuacji, gdy kursor *znajduje się na elemencie*, czyli w praktyce momentu wejścia kursora w obszar tego elementu. Właśnie to zachowanie reprezentuje onmouseover. Zdarzenie onmouseup dotyczy chwili, gdy użytkownik puszcza (zwalnia) przycisk myszy. Nie ma znaczenia samo położenie kursora nad elementem, tylko to, że wcześniej przycisk został wciśnięty i teraz jest puszczany. Typowo wykorzystuje się je przy obsłudze drag & drop, przycisków, elementów interaktywnych, ale nie do reagowania na samo najechanie kursorem. Mylenie onmouseup z onmouseover wynika często z założenia, że „skoro klikam na elemencie, to pewnie chodzi o mysz nad elementem”, ale technicznie są to dwa różne etapy akcji. Z kolei onmouseout jest w pewnym sensie odwrotnością onmouseover. Wyzwala się wtedy, gdy kursor opuszcza obszar elementu, czyli przestaje się nad nim znajdować. Używa się go chociażby do cofania efektów stworzonych przy onmouseover, np. przywracania koloru, ukrywania dymka z podpowiedzią. Jeśli więc szukamy momentu, w którym kursor jest już nad elementem, to onmouseout opisuje raczej sytuację, kiedy z tego elementu „schodzimy”. Zdarzenie onmousedown uruchamia się przy wciśnięciu przycisku myszy, w chwili naciśnięcia, a nie najechania. Jest to ważne w interakcjach typu rysowanie na canvasie, łapanie suwaka, obsługa własnych kontrolek. W praktyce, jeżeli ktoś kojarzy wszystkie te zdarzenia jedynie ogólnie jako „coś od myszy”, to łatwo wrzucić je do jednego worka i strzelać odpowiedzi, ale według specyfikacji DOM Events każde z nich ma ściśle zdefiniowaną rolę. W kontekście pytania tylko onmouseover opisuje wejście kursora w obszar elementu i utrzymywanie się nad nim, więc właśnie ono jest poprawnym wyborem.