这是我的代码
$('#btnDelete').unbind().click(function(){
var time = setTimeout(function() {
$.ajax({
type: 'ajax',
method: 'get',
async: false,
url: '<?php echo base_url() ?>main/delete',
data: {id:id},
dataType: 'json',
success: function(response){
if(response.success){
showNews();
} else {
alert('Error');
}
},
error: function(){
alert('Error deleting')
}
});
}, 10000);
});
我可以在哪里放置clearTimeout()函数,以便每次单击同一个按钮时计时器都会重置?谢谢!
最佳答案
试试这个:
var time;
$('#btnDelete').unbind().click(function() {
if (time) {
clearTimeout(time);
time = null;
}
time = setTimeout(function() {
$.ajax({
type: 'ajax',
method: 'get',
async: false,
url: '<?php echo base_url() ?>main/delete',
data: {
id: id
},
dataType: 'json',
success: function(response) {
if (response.success) {
showNews();
} else {
alert('Error');
}
},
error: function() {
alert('Error deleting')
}
});
}, 10000);
});
将 time
设置为全局变量或在点击处理程序外部访问。检查时间值,如果有任何值,则重置它,否则您的正常代码将起作用。
关于javascript - 如何设置 setTimeout 和clearTimeout 在同一按钮上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53634766/