2015-09-28 15 views
5

Ho una pagina Dipendente che mostra l'elenco degli impiegati con un'opzione di modifica. Facendo clic sul pulsante di modifica jquery-ajax viene utilizzato per recuperare i dati dal server. Il problema è quando faccio clic sul pulsante di modifica che l'evento sta sparando due volte.Jquery ajax clic del pulsante che fa scattare l'evento due volte?

Sto utilizzando un file js separato e si riferisce al file alla pagina principale. Lo script funzionava correttamente finché non l'ho spostato nel file js separato.

enter image description here

Lo script jQuery è

//ajaxGet on edit button click 
$(document).on('click', '.editRole', ajaxGet); 

var ajaxGet = function (e) {  


    var spinner = $(this).parent('div').find('.spinner'); 
    var href = $("#editMenuSettings").data("url"); 
    var menuRoleId = $(this).data('id'); 

    spinner.toggle(true); 

    var options = { 
     type: "GET", 
     url: href, 
     data: { menuRoleId: menuRoleId } 
    }; 

    $.ajax(options).success(function (data) { 
     spinner.toggle(false); 
     $(".modal-body").html(data); 
     $(".modal").modal({ 
      backdrop: 'static' 
     }); 
    }); 

    $.ajax(options).error(function (data) { 
     spinner.toggle(false); 
     toastr.error("Oops..Some thing gone wrong"); 
    }); 

    return false; 

}; 

risposta

14

Si chiama $.ajax due volte.

Al linee

$.ajax(options).success(function(data)... 

$.ajax(options).error(function(data)... 

effettivamente fare due diversi chiamate AJAX - uno con success richiamata solo, un altro con error callback.

Nel tuo caso, la chiamata dovrebbe essere simile a questo:

var options = { 
    type: "GET", 
    url: href, 
    data: { menuRoleId: menuRoleId } 
}; 

$.ajax(options) 
    .success(function (data) { 
     spinner.toggle(false); 
     $(".modal-body").html(data); 
     $(".modal").modal({ 
      backdrop: 'static' 
     }); 
    }) 
    .error(function (data) { 
     spinner.toggle(false); 
     toastr.error("Oops..Some thing gone wrong"); 
    }); 

return false; 

sarà impostato entrambi i callback per la chiamata AJAX singolo ed eseguire questo.

+0

Grazie amico .. Ha funzionato meravigliosamente bene .. – ksg