2013-10-08 19 views
27

sembra un problema semplice ma le soluzioni all'altro problema non sembrano funzionare da me.L'evento di clic sul pulsante di Jquery non viene attivato

Cercando di attivare una richiesta AJAX da un clic del pulsante, ma non sembra sparare.

esempio HTML

<button class="remove_weight_button" id="15">x</button> 

javascript

$(".remove_weight_button").click(function(){ 
    var button_id = $(this).attr("id"); 
    $.ajax({ 
     type: "POST", 
     url: "weight_tracker_process.php", 
     data: { 
      weight_id: button_id, 
      action: "remove" 
     }, 
     success: function(){ 
      getWeightData(); 
     }, 
     error: function(){ 
      alert("data removal error"); 
     } 
    }); 
    return false; 
}); 
+0

Per prima cosa, Vedete eventuali errori nella console ?, è vero raggiungendo il gestore (se non è avvolto in document.ready) , vedi qualche errore js o errore di rete nella console? – PSL

+1

Sei sicuro che il javascript sia in esecuzione _after_ il pulsante è stato caricato? Questo è un errore comune. –

+0

prova ad aggiungere un default di prevenzione nella parte superiore della tua funzione –

risposta

76

Il codice si dispone funziona bene in violino. Il tuo pulsante viene reso dinamicamente tramite AJAX dopo il caricamento iniziale della pagina?

Usa

$(document).on("click", ".remove_weight_button", function(){ 

invece di

$(".remove_weight_button").click(function(){ 
+3

+1, non sapevo di '$ (document) .on'. Nuovo trucco! –

+3

ah ovviamente, hai ragione, viene caricato da ajax. Come si risolve questo sopra? – GrepGrep

+7

@ user2803072 L'evento ".click" che stai utilizzando cerca solo gli elementi che sono stati disegnati durante il caricamento iniziale della pagina. L'evento "on" cerca elementi nello stato attuale della pagina –

Problemi correlati