JQuery clearTimeOut 不停止 setTimeOut 不工作
JQuery clearTimeOut not stopping setTimeOut not working
我有一段简单的代码,它在单击按钮时执行,但我需要检测双击(只需要单击一次 - 但我需要在两次或更多次单击时发出警报)。我有一个 setTimeOut
函数暂停一秒钟然后继续 - 但是我的代码应该清除这个函数不起作用,它正在执行 alert()
但没有停止 setTimeOut
函数!
$('.badge').on('click','#badge', function() {
Click = Click + 1
ButtonClick()
if ($.isNumeric($(this).text())) {
$(this).css("background-color","#006400");
BadgeNo = $(this).text()
if (Click == 1) {
var timeOut = setTimeout(function(){
$(this).css('background-color','#568bc1')
$('.badge').hide()
$('.hs').show()
$('#numberplate').text('')
}, 1000);
} else if (Click > 1) {
clearTimeout(timeOut);
alert("Please only select ONE badge number");
CheckBadge();
}
}
});
我在这里犯了任何形式的小学生错误吗?我只是不明白为什么它不停止超时。
取消设置时您的 var timeOut
超出范围:
var timeOut = false;
$('.badge').on('click','#badge', function() {
Click = Click + 1
ButtonClick()
if ($.isNumeric($(this).text())) {
$(this).css("background-color","#006400");
BadgeNo = $(this).text()
if (Click == 1) {
timeOut = setTimeout(function(){
$(this).css('background-color','#568bc1')
$('.badge').hide()
$('.hs').show()
$('#numberplate').text('')
}, 1000);
} else if (Click > 1) {
if ( timeOut )
clearTimeout(timeOut);
alert("Please only select ONE badge number");
CheckBadge();
}
}
});
仅在变量范围 timeOut
及其是否已初始化方面略有变化。
我有一段简单的代码,它在单击按钮时执行,但我需要检测双击(只需要单击一次 - 但我需要在两次或更多次单击时发出警报)。我有一个 setTimeOut
函数暂停一秒钟然后继续 - 但是我的代码应该清除这个函数不起作用,它正在执行 alert()
但没有停止 setTimeOut
函数!
$('.badge').on('click','#badge', function() {
Click = Click + 1
ButtonClick()
if ($.isNumeric($(this).text())) {
$(this).css("background-color","#006400");
BadgeNo = $(this).text()
if (Click == 1) {
var timeOut = setTimeout(function(){
$(this).css('background-color','#568bc1')
$('.badge').hide()
$('.hs').show()
$('#numberplate').text('')
}, 1000);
} else if (Click > 1) {
clearTimeout(timeOut);
alert("Please only select ONE badge number");
CheckBadge();
}
}
});
我在这里犯了任何形式的小学生错误吗?我只是不明白为什么它不停止超时。
取消设置时您的 var timeOut
超出范围:
var timeOut = false;
$('.badge').on('click','#badge', function() {
Click = Click + 1
ButtonClick()
if ($.isNumeric($(this).text())) {
$(this).css("background-color","#006400");
BadgeNo = $(this).text()
if (Click == 1) {
timeOut = setTimeout(function(){
$(this).css('background-color','#568bc1')
$('.badge').hide()
$('.hs').show()
$('#numberplate').text('')
}, 1000);
} else if (Click > 1) {
if ( timeOut )
clearTimeout(timeOut);
alert("Please only select ONE badge number");
CheckBadge();
}
}
});
仅在变量范围 timeOut
及其是否已初始化方面略有变化。