![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 199 Pomógł: 2 Dołączył: 9.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Hej
W jaki sposób uzyskać dostęp do dynamicznie utworzonego nowego elementu aby wykonywać na nim operacje ? Przykładowo wczytuje asynchronicznie za pomocą get dane w ktorych jest <div id="test"></div> Po jego wczytaniu chce zrobic $("#test").hide() i tu pojawia sie wlasnie ten problem ze nie moge nic zrobic.. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Nie znam jQuery, więc mogę się mylić, ale prawdopodobnie musisz skorzystać z metody 'live'. Ew. jak to nie to to spróbuj wykorzystać zdarzenie complete+ ew. context, dla funkcji ajax-owych i w nim umieścić odpowiedni kod( może, element jeszcze nie był załadowany w DOM )
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
live lub delegate, zależnie jakiej wersji jQuery używasz. Przykłady obu masz w dokumentacji na stronie jQuery.
-------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 199 Pomógł: 2 Dołączył: 9.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
wlasnie tak to zrobilem tyle ze okazalo sie ze ff cache utrudnial sprawe...
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 97 Pomógł: 11 Dołączył: 2.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
pewnie to "złe" rozwiązanie, ale działa. ja w takiej sytuacji na nowo binduję funkcję dla elementów z wywołania asynchronicznego.
czyli np. po "success" robię $('.test').bind('click'); Jakoś dziwnie przelałem myśli, ale myślę że wiesz o co chodzi ![]() |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 6 Dołączył: 2.02.2008 Ostrzeżenie: (10%) ![]() ![]() |
W teorii wywołanie
Kod $("#test").hide(); po zakończeniu żądania powinno działać, bo jest już wszystko załadowane, a jQuery przeszukuje elementy.Koledzy tutaj opisali Ci co zrobić jeśli ładujesz AJAX'em elementy np. z klasą .mail i chcesz, żeby działo się coś po ich kliknięciu. Wtedy .live() automatycznie przypisze eventy do elementów pobieranych AJAX'em. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 589 Pomógł: 91 Dołączył: 22.05.2008 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Nie bardzo umiem wyobrazić sobie przypadku w którym konieczne (czy tam o wiele, wiele, łatwiejsze) jest pobieranie anynchroniczne HTML`a a nie tekstu czy jsona. Jak dla mnie źle zaprojektowane.
Powinieneś pobrać: Kod {'result': 'ala ma kota'} Potem po odebraniu tego stworzyć diva, wpakować w niego text i wrzucić to gdzieś w drzewko DOM, wtedy nie musisz nawet tego elementu pobierać za pomocą id... -------------------- Moja gra - scraby.io
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 16:07 |