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

Mam prosty błąd. W kodzie z zewnętrznego pliku js:
  1. $().ready(function() {
  2. $("#project-nav a").click(function() {
  3. var project;
  4. $.ajax({
  5. type: "GET",
  6. url: "http://example.com/beta.php",
  7. data: "ajax=1&project_id=+zmienna,
  8. success: function(msg){
  9. $('#project_inner').replaceWith(msg);
  10. }
  11. });
  12. return false;
  13. });
  14. });

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.
lord_t
Podmień swój kod tym:) (pisałem z palca, ale chyba nic nie pokręciłem):
Kod
function aX(ojciecId){

$("#"+ojciecId+" a").click(function() {

var project;

$.ajax({
type: "GET",
url: "http://example.com/beta.php",
data: "ajax=1&project_id=+zmienna,
success: function(msg){
$('#project_inner').replaceWith(msg);
aX('project_inner');
}
});

return false;

});

}

$().ready(function() {
aX('project-nav');
});
sirostr
dopiero zaczynam moją przygodę z ajaksem.
Czy moglibyście mi pokazać jak taki kod działa?

edit: wypociłem takie coś, ale ne działa
  1. <!DOCTYPE html
  2. PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  3. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <title>pierwszy raz z ajaksem</title>
  7. </head>
  8. <script type="text/javascript" src="jquery.js"></script>
  9. <script type="text/javascript">
  10. function aX(ojciecId){
  11.  
  12. $("#"+ojciecId+" a").click(function() {
  13.  
  14. var project;
  15.  
  16. $.ajax({
  17. type: "GET",
  18. url: "http://drzamich.boo.pl/beta.php",
  19. data: "ajax=1&project_id=+zmienna,
  20. success: function(msg){
  21. $('#project_inner').replaceWith(msg);
  22. aX('project_inner');
  23. }
  24. });
  25.  
  26. return false;
  27.  
  28. });
  29.  
  30. }
  31.  
  32. $().ready(function() {
  33. aX('project_nav');
  34. });
  35. <div id="project_nav"><a href="#">KLIK</a></div>
  36. <div id="project_inner"><a href="#">KLIK</a></div>
  37. <?php
  38. echo $project_id;
  39. ?>
  40. </body>
  41. </html>
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.