Ajax вызывает функцию снова, когда Ajax завершен - PullRequest
0 голосов
/ 21 ноября 2019

есть ли в ajax способ дождаться завершения ajax перед повторным вызовом функции? Только если кнопка была нажата во время запроса ajax.

    $(document).ready(function(){
       $_button.on('click',function(){

       //if ajax is running, wait until done!
       init();
      });
    });

    function init(){
    //this function should be called again, when ajax is done
    }

    function ajax(){

    ..
    //ajax code
    ..

    }

Большое спасибо

Ответы [ 2 ]

3 голосов
/ 21 ноября 2019

Вы можете использовать следующее:

$(document).ajaxStop(function(){
  // code which gets executed once ajax is done
});

Таким образом, после выполнения запроса ajax будет выполнено запрошенное действие.

Надеюсь, это может помочь.

0 голосов
/ 21 ноября 2019

Я решил проблему, переопределив глобальные переменные переменными внутри функции сохранения.

Таким образом, при успешном выполнении ajax я могу взять предопределенные переменные внутри функции вместо переменных вне функции.

function savePicture(){

      var  $_btn_edit = $btn_edit;
      var  $_btn_save = $btn_save;
      var  $_gui_resize = $gui_resize;
      var  $_img = $img;
      var  $_picture = $picture;

// here ajax request

success: function(data){
  //on ajax success
    $_picture.replaceWith($(data);
}

Большое спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...