Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di zoom
    Registrato dal
    Dec 2001
    Messaggi
    1,737

    [Jquery + Ajax] ajax.status sempre 0

    Ho un problema con ajax + jquery
    Cliccando su dei link vorrei aggiornare una porzione di pagina con ajax.
    Le funzioni sono queste

    $(document).ready(
    function () {
    $("a[class*='loadAj_']").click(function(){
    linka(this.id);
    });
    }
    );

    function linka(questo){
    return caricaTesto('top10.cfm?ajax=1&dataTop='+dataTop,'b oxFilmTop10','','','top10');
    }


    Però ricevo sempre ajax.status 0.
    Se invece rinuncio alla funzione linka e metto il richiamo a caricaTesto direttamente all'interno dell'onclick di jquery tutto funziona correttamente.
    Però a me serve così perchè dopo la modifica poi devo riassociare l'evento click ai link modificati all'interno dello stesso div...
    Come posso risolvere?
    Chicco Ravaglia per sempre con noi!

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    sai che non si capisce molto quello che vuoi fare, dov'è la chiamata ajax?
    Il testo caricato dalla funzione caricaTesto dove vuoi che finisca?


  3. #3
    Utente di HTML.it L'avatar di zoom
    Registrato dal
    Dec 2001
    Messaggi
    1,737
    la chiamata ajax è rappresentata dalla funzione caricaTesto.
    Il div è boxFilmTop10.

    Al caricamento della pagina associo ai link con classe loadAj_ un evento al click che richiama la funzione caricaTesto (che di fatto è il modulo ajax)

    I link con classe loadAj_ sono però all'interno del div boxFilmTop10 e quindi dopo la chiamata ajax mi serve riassociare l'evento.
    Per questo ho separato
    $("a[class*='loadAj_']").click(function(){
    linka(this.id);
    });

    dalla funzione linka.

    Però così non funziona. Ajax ha sempre uno status a 0.
    Se invece faccio una cosa del tipo

    $("a[class*='loadAj_']").click(function(){
    return caricaTesto('top10.cfm?ajax=1&dataTop='+dataTop,'b oxFilmTop10','','','top10');
    });

    tutto funziona correttamente, ma poi mi troverei costretto a dover riscrivere la funzione intera per riassociare il comportamento all'onclick sui link...
    E siccome non è così semplice ma ci sono diverse operazioni da fare prima della chiamata ajax non mi sembra un ragionamento corretto...

    Boh, non capisco perchè spostando la chiamata ajax fuori dalla funzione non va più
    Chicco Ravaglia per sempre con noi!

  4. #4
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    devo essere sincero, non ho capito molto, ma guardando meglio il codice:

    Se questo funziona:
    codice:
    $("a[class*='loadAj_']").click(function(){
    return caricaTesto('top10.cfm?ajax=1&dataTop='+dataTop,'boxFilmTop10','','','top10');
    });
    Il codice sotto deve essere cosi:

    codice:
    $("a[class*='loadAj_']").click(function(){
      return linka(this.id);
    });
    
    function linka(questo){
    return caricaTesto('top10.cfm?ajax=1&dataTop='+dataTop,'boxFilmTop10','','','top10');
    }
    Poi non so se ho capito bene, tu dici che devi riassociare un'azione ad elementi che vengono caricati tramite ajax, se fosse cosi ti consiglio di dare un occhio al plugin di jquery chiamato "livequery", che ti permette di associare ad un evento degli elementi ritornati da un particolare selettore anche se questi non sono ancora nel DOM, ma vengono aggiunti in un secondo momento.

    Per farla breve, se includi nella tua pagina il plugin livequery, poi potrai scrivere una cosa del genere:

    codice:
    $().ready(function() {
      $('.elementiCreatiTramiteAjax').bind('click', function() {
        alert('Sono stato aggiunto al DOM tramite AJAX');
      });
    });
    Spero di esserti stato utile


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.