Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery][AJAX] Pobranie danych i link przeładowuje stronę
Forum PHP.pl > Forum > XML, AJAX > AJAX
gwozdek111
Witam

Mam prosty błąd. W kodzie z zewnętrznego pliku js:
Całość oparta o JQUERY.
  1. $(document).ready(function(){
  2. $('a').click(function(){
  3. $('#content').load(
  4. $(this).attr('href')
  5. );
  6. return false;
  7. });
  8. });
[/code]
Wszystko działa ok, ale do pierwszego wywołania kodu, po poprawnym pobraniu danych i zamianie elementu linki, które się znajdują w uaktualnionym elemencie przestają działać zgodnie z założeniem, tzn. nie jest wywoływana akcja zapytania AJAX tylko strona jest przeładowywana.

Wiem, że tak się dzieje ponieważ powyższy kod odnosi się do stanu po załadowaniu strony tradycyjnym żądaniem, po aktualizacji żądania AJAX-em nie ma zastosowania kod w $().ready - ale jedynie do tego uaktualnionego elementu.

Ale zamieszałem, mam nadzieję, że ktoś zrozumie i podpowie jak to rozpisać by działało - dodawanie atrybutów w stylu onclick do linków raczej odpada.
ActivePlayer
cos takiego kombinuj:
Kod
$(document).ready(function(){
setLoads();
});


function setLoads(){
$('a').click(function(){
$('#content').load(
$(this).attr('href'),'', function(){
setLoads();
}
);
return false;
});
}

generalnie funkcja load ma 3 parametry, ten trzeci to callback - funkcja wywoływana po zakończeniu ładowania. ps. pisane z palca wiec może nie działać.
erix
Cytat
dodawanie atrybutów w stylu onclick do linków raczej odpada.

DOMListener było coś takiego. Poza tym, jQuery v.1.3.x ma chyba metodę live(), która służy do czegoś takiego. winksmiley.jpg
gwozdek111
Cytat(ActivePlayer @ 14.03.2009, 00:16:51 ) *
cos takiego kombinuj:
Kod
$(document).ready(function(){
setLoads();
});


function setLoads(){
$('a').click(function(){
$('#content').load(
$(this).attr('href'),'', function(){
setLoads();
}
);
return false;
});
}

generalnie funkcja load ma 3 parametry, ten trzeci to callback - funkcja wywoływana po zakończeniu ładowania. ps. pisane z palca wiec może nie działać.



Jest problem z tym skryptem, jakieś zapętlenie chyba, bo pierwsze 2-3 ajaxowe linki ok, a pozniej jak by coraz dłużej ładował strony a po kilkunastu kliknięciach zawiesza przelądarkę.
POMOOOOCY, z góry dziękuję!
erix
Spróbuj "po mojemu".
gwozdek111
Cytat(erix @ 15.03.2009, 00:53:31 ) *
Spróbuj "po mojemu".



Po Twojemu tzn jak? Jakiś kodzik?
erix
Wyguglaj sobie terminy, o których wspomniałem. Wszystko znajdziesz. Nawet na stronie jQ.
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.