Poznajemy target i relatedTarget dla mouse eventów, które już poznaliśmy. Kontynuacja lekcji poprzednich, do dzieła!
Ok, przypomnijmy:
- mouseenter: event, który jest odpalany, gdy mysz najedzie na element
- mouseleave: event, który jest odpalany, gdy mysz zjedzie z elementu
- mouseover: zakładamy, że słucha ul – event, który jest odpalany, gdy:
- mysz najedzie na element ul
- zjedzie z ul najeżdżając na li wewnątrz niego
- zjedzie z li najeżdżając na span wewnątrz niego
- zjedzie ze spanu najeżdżając na li wewnątrz niego
- zjedzie z li najeżdżając na kolejny li wewnątrz niego
- mouseout: obowiązuje ta sama zasada co w mouseover, ale na zjeżdżanie, czyli każde zjechanie z elementu, na który słuchamy bądź jego dzieci odpala event.
Ok, target i relatedTarget dla eventu mouseenter:
- target: ten element, na który wjechaliśmy
- relatedTarget: element, z którego zeszliśmy, odpalając mouseenter
Ok, target i relatedTarget dla eventu mouseleave:
- target: element, który opuściliśmy
- relatedTarget: element, na który teraz pokazujemy
Czyli w przypadku mouseenter i mouseleave:
- zarówno mousenter i mouseleave odpali się raz dla jednorazowego przejechania myszą po elemencie, na który słuchamy i co my tam wewnątrz robimy niczego nie zmienia
- target to zawsze będzie element, na którym słuchamy
- relatedTarget to będzie element, z którego przyszliśmy (dla mouseenter) albo element, na który opuściliśmy (dla mouseleave).
Mouseover: wyobraźmy sobie taką listę, po której przejedziemy myszą po wszystkich elementach:
<ul>
<li>Bla bla <span>span bla</span></li>
<li>Li 2</li>
</ul>
Słuchamy na ul na event mouseover:
- Pierwszy mouseover:
- target: ul
- relatedTarget: null
- Drugi mouseover:
- target: li
- relatedTarget: ul
- Trzeci mouseover:
- target: span
- relatedTarget: li
- Czwarty mouseover:
- target: li
- relatedTarget: span
- Piąty mouseover:
- target: li (drugi)
- relatedTarget: li (pierwszy)
- Szósty mouseover:
- target: ul
- relatedTarget: li (drugi)
I tak to wygląda. Teraz mouseout:
- Pierwszy mouseout:
- target: ul (opuszczony)
- relatedTarget: li (odwiedzony)
- Drugi mouseout:
- target: li (opuszczony)
- relatedTarget: span (odwiedzony)
- Trzeci mouseout:
- target: span (opuszczony)
- relatedTarget: li (odwiedzony)
- Czwarty mouseout:
- target: li (opuszczony, pierwszy)
- relatedTarget: li (odwiedzony, drugi)
- Piąty mouseout:
- target: li (opuszczony)
- relatedTarget: ul (odwiedzony)
- Szósty mouseout:
- target: ul (opuszczony)
- relatedTarget: body (odwiedzony)
Musimy to po prostu zrozumieć, niezależnie od tego jak trudne się to na początku wydaje.