2015-09-28 28 views
5

Mam stronę pracownika, która pokazuje listę pracowników z opcją edycji. Po kliknięciu przycisku edycji jquery-ajax służy do pobierania danych z serwera. Problem polega na tym, że po kliknięciu przycisku edycji wydarzenie jest uruchamiane dwukrotnie.Jquery ajax przycisk kliknij wydarzenie dwa razy?

Używam oddzielnego pliku js i odnoszę plik do strony głównej. Skrypt działał poprawnie, dopóki nie został przeniesiony do osobnego pliku js.

enter image description here

Skrypt jQuery jest

//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; 

}; 

Odpowiedz

14

zadzwonić $.ajax dwukrotnie.

Na liniach

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

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

rzeczywiście zrobić dwa inny AJAX wzywa - jeden z success zwrotna tylko, drugi z error zwrotnego.

W twoim przypadku, połączenie powinno wyglądać następująco:

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; 

będzie ustawiona zarówno wywołania zwrotne do pojedynczy AJAX rozmowy i wykonać ten jeden.

+0

Dziękuję kolego .. Wyszło cudownie dobrze .. – ksg