2012-10-02 18 views
6

Wygląda na to, że jQuery ma trigger() uruchamia tylko programy obsługi zdarzeń powiązane z jQuery. Mam kilka modułów, które korzystają z powiązania zdarzeń rodzimej przeglądarki. Używanie kodu z https://stackoverflow.com/a/2676527 działa dla mnie, ale zastanawiam się, czy jest coś wbudowanego w jQuery, które to zrobi?Zdarzenie wywołania wyzwalacza z jQuery

Aktualizacja z komentarzy: widocznie działa dla zdarzeń kliknięcia na przyciskach. Ale nie dla zmiany zdarzeń na wybranych polach: http://jsfiddle.net/qxpXV/2/

Dla przypomnienia: hakerskich drugą bibliotekę robić swoje powiązania z jQuery ma zrobić trigger() pracy, ale ja naprawdę nie chcę tego robić.

+1

@singpolyma Co masz na myśli przez powiązanie wydarzenie przeglądarki macierzystej? '.addEventListener()'? Jestem w stanie wywołać takiego handler'a: http://jsfiddle.net/mnrUt/Hm, nawet jeśli podaję kod za pomocą atrybutu HTML 'jedenvent',' .trigger() 'jQuery nadal może uruchomić ten kod : http://jsfiddle.net/mnrUt/1/ –

+0

@adeneo Zobacz moje dwa dema powyżej. –

+0

@ ŠimeVidas - Wydaje się, że działa, zawsze oczekiwał, że nie będzie działać tak, jak docs mówi, że jest związany z wydarzeniami związanymi z jQuery, i nigdy tak naprawdę nie udało się go przetestować! – adeneo

Odpowiedz

1

Możesz to zrobić, ręcznie uruchamiając/wysyłając wydarzenie (w zależności od przeglądarki, fireEvent/dispatchEvent) bezpośrednio na elemencie DOM. Kod from this answer obsłuży wywołanie zdarzenia, wystarczy wykonać go względem elementu DOM, a nie opakowania jQuery.

+0

Zauważysz, że łączę się z bardzo podobnym kodem w moim pytaniu :) – singpolyma

+0

Zaakceptowanie tego, ponieważ wydaje się, że jest to jedyny sposób. jQuery po prostu nie obsługuje tego, o ile mogę powiedzieć :) – singpolyma

Powiązane problemy