你可以像这样做你想做的事:
var fewSeconds = 5;
$('#btn').click(function(){
// Ajax request
var btn = $(this);
btn.prop('disabled', true);
setTimeout(function(){
btn.prop('disabled', false);
}, fewSeconds*1000);
});
.complete()
或者您可以使用ajax 收到响应后正在执行的jQuery方法:
$('#btn').click(function(){
var btn = $(this);
$.post(/*...*/).complete(function(){
btn.prop('disabled', false);
});
btn.prop('disabled', true);
});
编辑: 这是一个服务器端响应延迟为 3 秒的示例
编辑
因为即使答案是 8 岁,但仍然受到关注并且 jQuery 越来越不受欢迎,我认为值得添加没有 jQuery的示例
const fewSeconds = 3
document.querySelector('#btn').addEventListener('click', (e) => {
e.target.disabled = true
setTimeout(() => {
e.target.disabled = false
}, fewSeconds * 1000)
})
<input type='button' id="btn" value="click me" />