JQuery的函数执行顺序不起作用

时间:2017-08-14 09:58:39

标签: javascript jquery css function



function disableButton(element, callback) {
  $(element + " .loading-spinner").css('display', 'inline-block');
  $(element).attr("disabled", true);
  alert('1');
  callback();
}

function enableButton(element, callback) {
  $(element + " .loading-spinner").css('display', 'none');
  $(element).attr("disabled", false);
  alert('3');
  callback();
}

function executeAjax(data, callback) {
  alert('2');
  callback();
}

$( ".custom-button" ).click(function(e) {
    disableButton('.custom-button', function() {
      executeAjax('testdata', function() {
        enableButton('.custom-button', function() {});
      });
    });
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<button class="custom-button"><span class="loading-spinner" style="display:none;">Loading </span>BUTTON</button>
&#13;
&#13;
&#13;

我对执行函数的顺序有些问题。我尝试使用promises和callback来修复它,但这一切都没有用。

我有这三个函数:disableButton(),enableButton()&amp; executeAjax()

问题是:警报按正确的顺序弹出:1,2和3.但是......启用和禁用状态不起作用。如果我使用超时,它可以工作,但否则css和disable状态不会以正确的顺序执行。我该如何解决这个问题?

0 个答案:

没有答案