首先,我对我未来的英语半级表示歉意。
我来找你,因为我有一个奇怪的问题与我的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