首先,我對我未來的英語半級表示歉意。
我來找你,因爲我有一個奇怪的問題與我的JavaScript。
在這裏你可以看到,我有這樣的代碼:
addVoucherMaster: function (Code) {
var btns = $('.btn-spin');
btns.empty();
if (btns.find('i.fa-spinner').length == 0) {
$('<i>', { 'class': 'fa fa-spinner fa-pulse' }).appendTo(btns);
}
btns.css('opacity', '.5');
$(".validation-summary-errors").attr('class', 'validation-summary-valid');
$(".validation-summary-valid").children('ul').empty();
var dataSend = {
voucherId: Code,
};
var jsonData = JSON.stringify(dataSend);
var result = null;
if (Code && this.addVoucherUrl) {
$.ajax({
url: this.addVoucherUrl,
type: 'POST',
data: jsonData,
dataType: 'json',
processData: false,
contentType: 'application/json; charset=utf-8',
async: false,
success: function (data) {
result = data.Data;
return data;
}
});
if (result == 'True') {
this.payments();
} else {
var btns = $('.btn-spin');
this.errorVoucher("Incorrect voucher");
btns.css('opacity', 1);
btns.empty();
btns.append('+');
}
}
},
這是非常糟糕的寫入,但首先我在使用旋轉器(裝載機)按鈕取代了「+」,然後我做一個ajax查詢(異步),然後重新執行一些代碼。 (所有這些都由data-bind =「click:addVoucherMaster」執行)
問題從這裏開始。 當我使用帶有斷點的Chrome調試器時,在'btns.css('opacity','.5');'之後,我的按鈕就像我想要的那樣,然後響應讓我等待1/2秒,而我的按鈕停止旋轉結束。
但是,沒有調試器,1/2秒就會出現在我的按鈕開始旋轉之前。 (所以它在同一時間開始和停止,我們什麼都看不到)。
有人能幫助我嗎?
謝謝你在前進,
大衛,
現場演示效果更好。或者至少有一些html代碼。 – blackmiaool
我沒有完全理解它,但爲什麼你做異步錯誤? – sofl