我正在使用Ladda来显示等待AJAX调用时的动画。我使用Ladda start()方法启动按钮上的动画,完成工作后需要停止动画,但是未执行$ .ajax()的always方法的回调,为什么?
let l = Ladda.create(this);
l.start();
$.ajax({
url: molarisk_public.ajaxurl,
type: 'post',
data: {
action: 'user_send_verification',
_nonce: molarisk_public.nonce,
log: log,
pwd: pwd,
ver_type: ver_type
},
success: function(result) {
switch (result) {
case 'signin_attempt_sent':
output_p.removeClass('text-danger');
output_p.addClass('text-success');
output_p.text('Codice generato, controlla la posta!');
break;
case 'email_verification_sent':
output_p.removeClass('text-danger');
output_p.addClass('text-success');
output_p.text('Link di verifica inviato, controlla la posta!');
break;
case 'email_unverified':
output_p.removeClass('text-success');
output_p.addClass('text-danger');
let unverified = 'Non hai ancora verificato il tuo indirizzo e-mail. Esegui prima la verifica dell’indirizzo cliccando sul link che ti è stato inviato oppure <button type="button" class="as-a-link send-link-btn" id="test">richiedi un nuovo link di verifica</button>.';
output_p.html(unverified);
break;
default:
output_p.removeClass('text-success');
output_p.addClass('text-danger');
output_p.text(result);
}
//l.stop();
},
always: function() {
l.stop();
}
});
答案 0 :(得分:1)
这是因为您正在使用$.ajax
中的设置对象的属性。因此,属性名称应为complete
。
$.ajax({
// other properties...
success: function(result) {
// your logic
},
complete: function() {
l.stop();
}
});
您似乎将它与延迟对象上的always()
方法混淆了。要使用该方法,请在$.ajax()
之后将方法调用链接:
$.ajax({
// request properties...
}).done(function(result) {
switch(result) {
// your logic
}
}).always(function() {
l.stop();
});