Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [jQuery] nie widzi id pól ze skryptu wczytanego ajaxem
john_doe
post
Post #1





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


witam,

mam formularz a w nim pola ( cały ten form wczytywany jest ajaxem po kliknięciu w przycisk )
1. rabat pole input text
2. liczba osobo pole select option
3. tak/tak pole radio
4 oplata pole input text

Dlaczego takie coś testowe coś
$("select#liczbaOsob").change(function(){

alert('zmieniles liczbe osob');

});
nie dostaję alertu na ekran. dlaczego? tak jak pisałem wyżej form po kliknięciu w przycisk wczytywany jest z pliku php na serwerze.
Dziwne tak jakby nie widział tego co wczytuje z php? konsola nie pokazuje błędów.
wrrrrrr

Ten post edytował john_doe 9.02.2011, 23:29:15
Go to the top of the page
+Quote Post
melkorm
post
Post #2





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


Zainteresuj się jquery#live

Powód jest następujący:

Przypisujesz elementom które jeszcze nie zostały wczytane zdarzenia, więc jak mają one działać?

Ja ten problem rozwiązuje następująco (nie lubię live z kilku przyczyn):
Wykonuję żądanie AJAX i dopiero w onsuccess przypisuję zdarzenia do tego co pobrałem, skutkuje to wzrostem wydajności (bo nie przeszukujemy całego drzewa DOM tylko kod który pobraliśmy) i mamy wszystko w jednym miejscu i zdarzenie zostanie na pewno przypisane raz, a nie jak w przypadku live może się zdarzyć że to samo zdarzenie będzie przypisane kilkukrotnie do elementu.

P.S. Zamiast $("select#liczbaOsob"), lepiej już użyć $("#liczbaOsob"), w tym przypadku jQuery nie musi parsować wyrażenia.

Ten post edytował melkorm 10.02.2011, 08:57:45
Go to the top of the page
+Quote Post
Kartofelek
post
Post #3





Grupa: Zarejestrowani
Postów: 55
Pomógł: 4
Dołączył: 27.09.2007

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


Zainteresuj się też jQuery delegate()
Polecam ściągnąć sobie na dysk "jqapi-offline"
Zarąbista dokumentacja
Go to the top of the page
+Quote Post
john_doe
post
Post #4





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


no super jest to trop.

zamieniłem to na
  1. $("#liczbaOsob").live('change', function(){
  2.  
  3. alert('zmieniles liczbe osob');
  4.  
  5. });


dostaję
Uncaught TypeError: Object #<an Object> has no method 'live'
Go to the top of the page
+Quote Post
krowal
post
Post #5





Grupa: Zarejestrowani
Postów: 561
Pomógł: 72
Dołączył: 15.11.2006

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


.live() zostało wprowadzone w wersji 1.3 zobacz czy nie masz niższej.
Go to the top of the page
+Quote Post
john_doe
post
Post #6





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


rzeczywiście miałem 1.2
zamieniłem na 1.5
dzięki panowie


Ten post edytował john_doe 12.02.2011, 14:32:22
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 17.09.2025 - 09:07