Jak dołączyć wszystkie zdarzenia po manipulowaniu domem przy użyciu odpowiedzi ajax. Mam żądanie ajax, które dostaje odpowiedź html, która jest w zasadzie fragmentem html. ten fragment HTML ma wiele przycisków. Chcę odświeżyć dom, aby wcześniej również zadeklarowane i dołączone zdarzenia zostały zastosowane w tym fragmencie. Nie chcę ciągle dodawać każdego zdarzenia dla każdego przycisku za pomocą jquery on(). jak inaczej to zrobić?Dołączanie zdarzeń po manipulacji DOM przy użyciu JQuery ajax
Odpowiedz
Można użyć delegowanej obsługi zdarzeń, która jest ustawiana z wyprzedzeniem i można ją zastosować do nowo dodanych elementów DOM. Przekazane obsługi zdarzeń odbywa się .on()
i zazwyczaj przyjmuje formę:
$("static parent selector").on('click', 'selector for dynamic element', fn);
Nie ma czysty sposób wystarczy uruchomić zdarzenia instalowania kodu ponownie i mieć ona zastosowanie tylko do nowo dodanych elementów DOM. Będziesz musiał umieścić ten kod w funkcji i zakodować go tak, aby nigdy nie dodawał obsługi zdarzeń więcej niż jeden raz, a następnie mógłbyś wywołać tę funkcję ponownie po dodaniu elementów do DOM. Można również ustawić funkcję na argument dla obiektu nadrzędnego i dodawać tylko procedury obsługi zdarzeń w nowo dodanej hierarchii DOM.
Oto kolejny istotny odpowiedź o delegowanego obsługi zdarzeń: Does jQuery.on() work for elements that are added after the event handler is created?
Oto link wyjaśniający, co powiedział jfriend00: http://api.jquery.com/on/ – Jonathan
- 1. Dołączanie elementu DOM dwukrotnie (jQuery)
- 2. Dołączanie wielu elementów przy użyciu jQuery
- 3. Jak zapobiec resetowaniu pozycji przewijania strony po manipulacji DOM?
- 4. Jak znaleźć detektory zdarzeń w węźle DOM przy użyciu JavaScriptu
- 5. Jak uzyskać obraz przy użyciu ajax jquery?
- 6. Połączenie JSP ajax przy użyciu jquery
- 7. Dostęp do obiektu DOM po wywołaniu AJAX?
- 8. Skompilowanie manipulacji "ciągiem" przy użyciu szablonów zmiennych
- 9. Dołączanie opcji do wyboru przy użyciu jQuery nie działa
- 10. Zaproponuj Najmniejszy Dom biblioteki manipulacji na budowę Widgety
- 11. jQuery przesłać plik przy użyciu metody ajax jQuery (bez wtyczek)
- 12. Testowanie DOM manipulacji w teście Jasmine
- 13. Czy jQuery usuwa detektory zdarzeń ze zniszczonej zawartości DOM?
- 14. przestrzeni nazw wiele zdarzeń przy użyciu jQuery "na"
- 15. Łańcuch zdarzeń i iteracji DOM
- 16. tworzenia json z elementów DOM przy użyciu jQuery
- 17. Auto-odtwarzanie wideo HTML5 w Dom Load przy użyciu jQuery
- 18. Jak sprawdzić, czy element istnieje w DOM przy użyciu jQuery?
- 19. Wysyłanie niestandardowych zdarzeń przy użyciu struktury Dojo
- 20. jQuery: Wywoływanie zdarzeń .click(), jeden po drugim
- 21. Jak uzyskać odniesienie do selektora jQuery dla treści dodanych po prostu metodą manipulacji?
- 22. Obsługa przekierowywania stron w komórce Jquery przy użyciu wywołań Ajax
- 23. Jak wyświetlić listę wszystkich zarejestrowanych zdarzeń węzła DOM przy użyciu Javascript?
- 24. Wywołanie funkcji ColdFusion przy użyciu AJAX
- 25. odśwież stronę po jquery ajax
- 26. Dostęp do DOM przy użyciu WebBrowser
- 27. Zapisywanie lub rejestrowanie wszystkich zdarzeń DOM/JQuery przeglądarki
- 28. Wywołanie serwletu ze strony JSP przy użyciu jQuery Ajax
- 29. Wywołanie webmethod w pliku aspx.cs przy użyciu jquery ajax
- 30. Przesyłanie wielu obrazów przy użyciu AJAX, PHP i jQuery
możliwe duplikat [jQuery delegacja event] (http://stackoverflow.com/questions/14679432/jquery-event-delegation) –
@EvanTrimboli - to pytanie nie jest dupą tego. Rozwiązanie może być podobne, ale pytanie nie jest takie samo. – jfriend00
Czy naprawdę potrzebna jest inna odpowiedź wyjaśniająca, w jaki sposób działa delegowanie wydarzeń? –