Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    158

    metodo click() jQuery non funziona dopo aggiornamento contenuto con AJAX

    Ciao a tutti!

    spiego brevemente la mio domanda:

    Ho la lista delle regioni italiane che stampo tramite php dal database
    Ogni record è mostrato con questo codice HTML

    <p class="regione" id="1">Abruzzo</p>

    Ora per semplificare poniamo che io abbia uno script che al click su una regione cancelli quella regione dal DB attraverso una chiamata AJAX.
    codice:
    $(document).ready(function(){
       $(".regione").click(function(){
          id = $(this).attr("id");
          // cancella dal db tramite ajax
          cancellaRegione(id);
          // aggiorno il contenuto del div che mostra le regioni... sempre tramite AJAX
          aggiornaRegioni();
       })
    });
    tutto funziona perfettamente, ma solamente al primo "eliminamento".
    Una volta che il contenuto del div viene aggiornato il metodo .click() evidentemente non viene più rilevato e l'unico modo che ho trovato per risolvere è inserire l'evento onclick direttamente nell'HTML.

    <p class="regione" id="1" onclick="failastessacosaconunafunzione()">Abruzzo</p>

    La mia domanda è:

    e' possibile far funzionare questo tipo di sistema senza dover inserire l'onclick nell HTML?
    Preferirei non dover mostrare i nomi delle funzioni nell HTML, sia per tenere il codice più pulito sia dal punto di vista della sicurezza (ha dei vantaggi o svantaggi usare questa tecnica lato sicurezza?? chiedo a voi ).

    Grazie mille in anticipo a tutti!
    Ultima modifica di ciro78; 27-04-2016 a 13:52 Motivo: tag code

  2. #2
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    Ciao,
    usa il tag code per il codice.
    Non funziona per il semplice motivo che l'evento è associato al ready della pagina. Se aggiornaRegioni riscrive la select devi bindare nuovamente la funzione del click.

    oppure

    codice:
    $(document).on('click',".regione",function(){
    
    }
    questo nel ready
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    158
    Grazie mille! proverò il prima possibile, ma sono sicuro funzioni perfettamente

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 © 2025 vBulletin Solutions, Inc. All rights reserved.