[Javascript] JS non esegue funzioni su bottoni stampati da chiamata AJAX

localhost.nicola

Utente Attivo
11 Dic 2015
58
2
8
Buon giorno, forse il titolo spiazza un po ma sicuramente la problematica è di facile risoluzione per voi che siete più esperti di me in JS.

Io tramite questa chiamata AJAX interrogo una pagina PHP che mi restituisce determinati valori sotto forma di oggetto JSON. Una volta ricevuto questo oggetto io devo stamparlo a video in modalità di tabella.

Ovviamente per ogni riga che stampo ci sono delle azioni, quali: elimina anagrafica, aggiorna anagrafica, ecc.. Per ogni td della tabella, o meglio per ogni record che ricevo, io stampo, sempre tramite la stessa chiamata ajax, questi bottoni per le azioni.

Il problema è appunto che non essendo stati caricati nel DOM al momento del caricamento della pagina se provo a legare una funzione semplice, ad esempio:

Codice:
$(".btn").click(function(){

  alert("ciao");

});

Non me la esegue.

Capisco che il motivo è quello sopra specificato ma esiste una soluzione?
Oppure esiste un altra strada da intraprendere?

Di segueito la chiamata AJAX:

Codice:
function onstart_get_anagen(result_store){


        $.ajax({
            url: "AJAX_supporto_pannello_anagrafica.php",
            async: true,
            type: "POST",
            dataType: "json",
            data: "start=1",


            success: function(Risposta){


                
                if ( Risposta[0].response == true && Risposta[0].row > 0 ){
                    
                    var rows = Risposta[0].row;




                    for ( var i = 1; i <= Risposta.length; i++ ){
                        
                            
                            var id_anagen = Risposta[i].id_anagen;
                                    var nome_cognome = Risposta[i].nome_cognome;
                                        var ragione_sociale = Risposta[i].ragione_sociale;
                                            var partita_iva = Risposta[i].partita_iva;
                                                var indirizzo = Risposta[i].indirizzo;
                                                    var provincia = Risposta[i].provincia;
                                                        var telefono = Risposta[i].telefono;
                                                            var id_pagamento = Risposta[i].id_pagamento;
                                                                var id_amministratore_condominio = Risposta[i].id_amministratore_condominio;
                                                                    var cellulare = Risposta[i].cellulare;
                                                                        var codice_fiscale = Risposta[i].codice_fiscale;
                                                                            var email = Risposta[i].email;
                                                                
                                //CORPO TABELLA
                                    bootstrap_table = "<tr>";
                                        
                                        bootstrap_table += "<td> <b> " + id_anagen + " </b> </td>";
                                        bootstrap_table += "<td>" + nome_cognome + "</td>";
                                        bootstrap_table += "<td>" + ragione_sociale + "</td>";
                                        bootstrap_table += "<td>" + partita_iva + "</td>";
                                        bootstrap_table += "<td>" + codice_fiscale + "</td>";
                                        bootstrap_table += "<td>" + indirizzo + "</td>";
                                        bootstrap_table += "<td>" + provincia + "</td>";
                                        bootstrap_table += "<td>" + telefono + "</td>";
                                        bootstrap_table += "<td>" + cellulare + "</td>";
                                        bootstrap_table += "<td> <a href='mailto:" + email + "'>" + email + "</td>";
                                        bootstrap_table += "<td> <button class='btn btn-xs btn-default update_anagen' > <span class='glyphicon glyphicon-pencil'> </span> </button> </td>";
                                        bootstrap_table += "<td> <button class='btn btn-xs btn-danger delete_anagen'  > <span class='glyphicon glyphicon-trash'> </span> </button> </td>";
                                    
                                        
                                    bootstrap_table += "</tr>";
                                //FINE CORPO TABELLA   
                                    


                                $(result_store).html(bootstrap_table);
                    }


                    
                }else if ( Risposta[0].response == false && Risposta[0].row == 0 ){
                    
                    $(result_store).html("No result");
                    
                }


                
                
            },
            
            error: function(){
              alert("Errore, non è possibile accedere alla risorsa desiderata.");
            }
            
        });
}

Grazie in anticipo.
 

Discussioni simili