2013-05-21 6 views
32

Obecnie jestem zanurzony w centrum nauki jQuery. Idę od początku do końca.event.originalEvent jQuery

Właśnie przeczytałem this paragraph:

Ważne jest również, aby pamiętać, że obiekt zdarzenia zawiera właściwość nazwie originalEvent, który jest przedmiotem zdarzenia, które przeglądarka sam stworzył. jQuery opakowuje ten natywny obiekt zdarzeń przy użyciu pewnych użytecznych metod i właściwości, ale w niektórych przypadkach trzeba uzyskać dostęp do oryginalnego zdarzenia na przykład przez event.originalEvent. Jest to szczególnie przydatne w przypadku zdarzeń dotykowych na urządzeniach mobilnych i tabletach.

Ostatnie zdanie, "Jest to szczególnie przydatne w przypadku zdarzeń dotykowych na urządzeniach mobilnych i tabletach"., naprawdę wzbudził moje zainteresowanie. ale to jest tak dużo, jak do tej pory centrum nauki przechodzi na originalEvent.

Czy ktoś wie o dobrych zasobach dla bardziej intensywnego studiowania/praktyki dla event.originalEvent w odniesieniu do wydarzeń dotykowych/urządzeń mobilnych?

Odpowiedz

33

event.originalEvent jest zwykle tylko rodzimym event (opisany również here).

Jeśli jednak przeglądarka jest kompatybilna, a zdarzenie miało postać touch event, to interfejs API zostanie ujawniony przez event.originalEvent.

Krótka odpowiedź brzmi, że event.originalEvent nie zawsze jest taka sama, zależy to od typu zdarzenia wywołanego przez procedurę obsługi i od środowiska przeglądarki.

+0

Co masz na myśli przez "wydarzenie rodzime"? Czym w przeciwieństwie do? –

+1

@ chopperdrawlion4 Klasa zdarzenia zdefiniowana przez przeglądarkę (np. 'Window.Event'), w przeciwieństwie do klasy jQuery, którą definiuje (tj.' JQuery.Event'/'$ .Event'). – 1j01

+1

Należy pamiętać, że 'zdarzenie.originalEvent' może być obecny w pewnych okolicznościach, a nie w innych, umożliwiając w niektórych okolicznościach [sprawdzenie, w jaki sposób uruchomiono procedurę obsługi zdarzeń] (https://stackoverflow.com/a/10255830/3478010). –

10

Mam sprawę, która, co potrzebne do korzystania event.originalEvent problem starałem się wystąpienie pliku spadła poprzez przeciąganie i upuszczanie za pomocą zdarzenie drop, to co się stało

var files = event.dataTransfer.files; // Gives error: trying to get property of undefined

podczas pisania

var files = event.originalEvent.dataTransfer.files; // Works fine

oznacza to, że jQuery nie zawijać rodzimą imprezę przeglądarki ze wszystkimi jego API, takich jak API pliku w tym przykładzie, tak aby uzyskać dostęp do tho se wykluczone właściwości i funkcje z zdarzenia jQuery musimy użyć event.originalEvent. Mam nadzieję, że pomaga komuś.

+1

Zdarzyło mi się również użyć tego zdarzenia.originalEvent. Moja sytuacja jest taka, że ​​kiedy przekazuję zdarzenie paste do funkcji w js, przeglądarka Firefox potrzebuje tego event.originalEvent.clipboardData, aby uzyskać wklejony tekst. event.clipboaradData jest niezdefiniowana. Wydaje się jednak, że IE ma inny wynik. –

0

jQuery zna standardowe zdarzenia i dostosowuje je do różnych przeglądarek. ale gdy nie ma standardowego zdarzenia, jQuery nie jest w stanie dopasować obiektu zdarzenia, ale ma bezpieczny numer originalEvent, który zachowuje oryginalny obiekt obsługiwany przez przeglądarkę.

na przykład mousewheel i DOMMouseScroll potrzeba również event.originalEvent, ponieważ nie ma obsługi zdarzenia koła.