Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [jQuery][AJAX] Pobranie danych i link przeładowuje stronę, [jQuery][AJAX] Pobranie danych i link przeładowuje stronę
gwozdek111
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 13.03.2009

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


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





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

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


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ć.

Ten post edytował ActivePlayer 14.03.2009, 00:17:15
Go to the top of the page
+Quote Post
erix
post
Post #3





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




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. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
gwozdek111
post
Post #4





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 13.03.2009

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


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ę!
Go to the top of the page
+Quote Post
erix
post
Post #5





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Spróbuj "po mojemu".
Go to the top of the page
+Quote Post
gwozdek111
post
Post #6





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 13.03.2009

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


Cytat(erix @ 15.03.2009, 00:53:31 ) *
Spróbuj "po mojemu".



Po Twojemu tzn jak? Jakiś kodzik?
Go to the top of the page
+Quote Post
erix
post
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Wyguglaj sobie terminy, o których wspomniałem. Wszystko znajdziesz. Nawet na stronie jQ.
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: 30.09.2025 - 03:39