Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] nie widzi id pól ze skryptu wczytanego ajaxem
Forum PHP.pl > Forum > Po stronie przeglądarki
john_doe
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
melkorm
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.
Kartofelek
Zainteresuj się też jQuery delegate()
Polecam ściągnąć sobie na dysk "jqapi-offline"
Zarąbista dokumentacja
john_doe
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'
krowal
.live() zostało wprowadzone w wersji 1.3 zobacz czy nie masz niższej.
john_doe
rzeczywiście miałem 1.2
zamieniłem na 1.5
dzięki panowie
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.