Może ktoś proszę mi powiedzieć dokładnie różnicę pomiędzy currentTarget
i target
mienia w imprezach JavaScript z przykładu i których właściwość jest używana w który scenariusz?
javascript
Valli69
źródło
źródło
Odpowiedzi:
Zasadniczo zdarzenia są domyślnie bąbelkowe , więc różnica między nimi jest następująca:
target
to element, który wywołał zdarzenie (np. użytkownik kliknął)currentTarget
jest elementem, do którego dołączony jest detektor zdarzeń.Zobacz proste wyjaśnienie w tym poście na blogu .
źródło
XMLHttpRequest
target
= element, który wywołał zdarzenie.currentTarget
= element, który ma detektor zdarzeń.źródło
Minimalny możliwy do uruchomienia przykład
Jeśli klikniesz:
następnie
1
nasłuchuje i dołącza do wyniku:ponieważ w takim przypadku:
2
jest elementem, który zainicjował zdarzenie1
to element, który nasłuchiwał wydarzeniaJeśli klikniesz:
zamiast tego wynikiem jest:
Testowany na chromie 71.
źródło
Jeśli to nie trzyma się, spróbuj tego:
prąd w
currentTarget
odnosi się do teraźniejszości. To najnowszy cel, który złapał wydarzenie, które wybuchło z innych źródeł.źródło
Jeśli klikniesz znacznik P w powyższym kodzie, otrzymasz trzy ostrzeżenia, a jeśli klikniesz znacznik div, otrzymasz dwa ostrzeżenia i jedno ostrzeżenie po kliknięciu znacznika formularza. A teraz zobacz następujący kod,
Tutaj event.target to [obiekt HTMLParagraphElement], a event.curentTarget to [obiekt HTMLDivElement]: Więc
Tutaj kliknęliśmy znacznik P, ale nie mamy detektora na P, ale na div jego elemencie nadrzędnym.
źródło
event.target to węzeł, z którego powstało zdarzenie, tj. gdziekolwiek umieścisz detektor zdarzeń (w akapicie lub zakresie), event.target odnosi się do węzła (gdzie użytkownik kliknął).
event.currentTarget , przeciwnie, odnosi się do węzła, do którego podłączono detektor bieżących zdarzeń. To znaczy. jeśli dołączyliśmy nasz detektor zdarzeń do węzła akapitu, to event.currentTarget odnosi się do akapitu, podczas gdy event.target nadal odnosi się do zakresu. Uwaga: jeśli mamy również detektor zdarzeń na ciele, to dla tego detektora zdarzenie event.currentTarget odnosi się do body (tzn. Zdarzenie dostarczone jako dane wejściowe do detektorów zdarzeń jest aktualizowane za każdym razem, gdy zdarzenie jest propagowane o jeden węzeł w górę).
źródło