У меня есть следующая функция JavaScript, которая выполняется при нажатии кнопки:
function calculate(resource) {
document.getElementById('loading-label').innerHTML = 'Calculating...';
$.ajax({
url: resource,
type: 'GET',
async: false,
headers: {
'Content-Type': 'application/json'
},
beforeSend: function () {
document.body.style.cursor('wait');
},
complete: function () {
document.body.style.cursor('default');
}
}).done(function (data, textStatus, jqXHR) {
if (data == true) {
document.getElementById('loading-label').innerHTML = 'Done!';
document.getElementById('loading-label').style.color = 'green';
} else {
document.getElementById('loading-label').innerHTML = 'Error!';
document.getElementById('loading-label').style.color = 'red';
}
});
}
Но она не работает так, как я хочу. Возможно, потому что я не использую обратные вызовы beforeSend
и complete
.
Как видно, при нажатии кнопки метка меняет свое содержимое, и я хотел бы изменить курсор на ожидание до завершения синхронного вызова (и затем возврат к по умолчанию ). Как я мог это сделать?