Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [jquery] operacje na nowo utworzonym DIV
netvalue
post
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..
Go to the top of the page
+Quote Post
kamil4u
post
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 )


--------------------
Go to the top of the page
+Quote Post
thek
post
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
Go to the top of the page
+Quote Post
netvalue
post
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...
Go to the top of the page
+Quote Post
toel
post
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 smile.gif
Go to the top of the page
+Quote Post
misiek08
post
Post #6





Grupa: Zarejestrowani
Postów: 91
Pomógł: 6
Dołączył: 2.02.2008

Ostrzeżenie: (10%)
X----


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.
Go to the top of the page
+Quote Post
#luq
post
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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 16:07