Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> DOM 'live/delegate/click', ktoś to ogarnia?
matrik
post 27.09.2010, 12:04:47
Post #1





Grupa: Zarejestrowani
Postów: 115
Pomógł: 2
Dołączył: 23.07.2009

Ostrzeżenie: (0%)
-----


Witam
Dlaczego live nie zawsze chce działać?
Dlaczego delegate działa i nie działa dla elementów które są generowane przez jQuery?
Click... jakby nie mogło istnieć

Live powinno działać jeśli element jest w pamięci jQuery,
Delegate też różnie działa ...

O co biega? haha.gif
Nie znalazłem dobrego POLSKIEGO tutoriala z wytłumaczeniem kiedy i gdzie się stosuje live/delegate.

Zna ktoś coś podobnego do livequery tylko, że dla wersji jQuery 1.4.2?

Pozdro
Go to the top of the page
+Quote Post
nospor
post 27.09.2010, 12:05:56
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




To moze napisz w jakim przypadku ci nie dziala to LIVE to pogadamy inaczej smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
matrik
post 27.09.2010, 12:42:33
Post #3





Grupa: Zarejestrowani
Postów: 115
Pomógł: 2
Dołączył: 23.07.2009

Ostrzeżenie: (0%)
-----


1. Jest link <a href="" id="load">Załaduj</a> - klikam (delegate)
2. poprzez zdarzenie click pobieram ajaxem zawartosc <div id="send_form_0">formularza</div> - wysłanie live>submit
żadnych błędów w firebugu, nie wysyła się, a strona sie przeładowywuje, w zdarzeniu dalem return false; co powinno zapobiec przeladowaniu sie strony


jest jeszcze jeden problem dotyczący tego tematu
jak kontynuować pętle each jeśli elementy zostały załadowane przez jQuery?
Go to the top of the page
+Quote Post
vokiel
post 27.09.2010, 13:40:12
Post #4





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


Aby link nie przenosił do strony należy przechwycić ten event. Czyli:
[JAVASCRIPT] pobierz, plaintext
  1. $('a').click(function(event){
  2. event.preventDefault();
  3. });
[JAVASCRIPT] pobierz, plaintext


Poza tym, reszta tego co napisałeś jest na tyle niezrozumiała, że nie wiem jak tu pomóc. Wiem, że masz w głowie cały problem, jednak my przy tym kodzie nie siedzimy i nie wiemy co masz na myśli, musisz to otwarcie napisać, a nie półsłówkami, skrótami.


--------------------
Go to the top of the page
+Quote Post
devnul
post 27.09.2010, 13:54:41
Post #5





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

Ostrzeżenie: (0%)
-----


Cytat
jak kontynuować pętle each jeśli elementy zostały załadowane przez jQuery?
jeśli dobrze rozumiem zamiary to się nie da, musisz na nowo załadowanych elementach na nowo polecieć eachem


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
matrik
post 27.09.2010, 17:22:45
Post #6





Grupa: Zarejestrowani
Postów: 115
Pomógł: 2
Dołączył: 23.07.2009

Ostrzeżenie: (0%)
-----


Ja wiem, że nie jest łatwo zrozumieć to co napisałem, ale to samo będzie jak wytnę kod, który chce omówić tongue.gif

Po prostu nie wiem jak wykorzystać live/delegate dla tego co jest generowane przez jQuery

$('#element').live('click',function(){
//my code
});

$('body').delegate('#element','click',function(){
//my code
});
Go to the top of the page
+Quote Post
devnul
post 27.09.2010, 17:26:07
Post #7





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

Ostrzeżenie: (0%)
-----


wszystko masz w dokumentacji, czegoś konkretnego nie rozumiesz? bo jeśli coś robisz źle to niestety nikt się tutaj nie domyśli co takiego źle robisz


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
matrik
post 27.09.2010, 18:00:47
Post #8





Grupa: Zarejestrowani
Postów: 115
Pomógł: 2
Dołączył: 23.07.2009

Ostrzeżenie: (0%)
-----


hmm, live działa tylko dla tych elementów, które nie zostały dodane do drzewa DOM?

Szukam rozwiązania, które by nie stawiało problemów wytyczenia czy element istnieje w drzewie DOM. Najlepszym przykładem tego było livequery dla wersji jQuery 1.3.x
A więc, powinno być dla mnie obojętne czy tag jest czy go nie ma, a pamięć podręczna jQuery i pmięć przeglądarki była jednym tym samym - jedną warstwą, a nie dwoma oddzielnymi, co komplikuje działanie kodu, ułatwiło by to sprawność, s powodu, przeróżnych funkcjonalności/uniwersalności kodu jquery.

Z dokumentacji korzystam jak najbardziej tongue.gif. Ale czasami i to nie wystarcza, jeśli się nie zna samemu wszystkiego i nie wie czego szukać.
Go to the top of the page
+Quote Post
vokiel
post 27.09.2010, 20:07:03
Post #9





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


Cytat(matrik @ 27.09.2010, 19:00:47 ) *
hmm, live działa tylko dla tych elementów, które nie zostały dodane do drzewa DOM?

Live działa dla wszystkich, które są +dla tych, które się pojawią w przyszłości.


--------------------
Go to the top of the page
+Quote Post
matrik
post 28.09.2010, 11:28:27
Post #10





Grupa: Zarejestrowani
Postów: 115
Pomógł: 2
Dołączył: 23.07.2009

Ostrzeżenie: (0%)
-----


Daje demo, kawałka kodu.
O co chodzi?
W rozwijanym menu nie działa live click. zresztą link do demo.
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 Wersja Lo-Fi Aktualny czas: 13.06.2025 - 07:39