Właściwość zdarzenia z kółkiem myszy target
zapewnia element DOM, nad którym obecnie znajduje się wskaźnik myszy, gdy obsługiwane jest koło myszy (lub touchpad z obsługą gestów).Dlaczego właściwość target zdarzenia kółka myszy różni się od zdarzeń innych zdarzeń (kliknięcie, mousedown, dotykowy)?
Kiedy to zrobię (przynajmniej w Safari 6, później przetestuję inne przeglądarki) Otrzymam węzeł tekstu jako target
.
Nie dzieje się tak z innymi zdarzeniami, które zawsze tworzą węzeł nietekstowy, nawet jeśli wykonuję akcję bezpośrednio nad tekstem.
Nie trzeba dodawać, że kod jest bardziej skomplikowany niż w innych przypadkach.
Czy istnieje ku temu powód? Chciałbym uniknąć konieczności sprawdzania węzła nadrzędnego, choć na szczęście miłą rzeczą w tej sytuacji jest to, że potrzebowałbym tylko sprawdzić rodzica węzła target
.
Nie mogę zdecydować, czy jest to funkcja, czy błąd.
wydaje się zdarzyć tylko w Chrome/Safari .. oto jsfiddle który kiedyś przetestować ten http: // jsfiddle .net/sbrjL/.. co ciekawe, jeśli zrobisz kółko myszy na dopełnieniu div (lub gdziekolwiek bez tekstu), zwróci on element jako cel .. czy możesz użyć słowa kluczowego 'this' zamiast' event.target' ? – lostsource
To jest znormalizowane przez jQuery z powodu "błędu Safari". – pimvdb
@pimvdb, jeśli wykopiesz źródło, które oznacza, że zaakceptuję to jako odpowiedź. –