作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一段简单的代码,单击按钮即可执行,但我需要检测双击(只需要一次单击 - 但我需要在两次或多次单击时发出警报)。我有一个 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
的范围以及它是否已初始化方面略有变化。
关于JQueryclearTimeOut 不停止 setTimeOut 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33169325/
我有一段简单的代码,单击按钮即可执行,但我需要检测双击(只需要一次单击 - 但我需要在两次或多次单击时发出警报)。我有一个 setTimeOut 函数,可以暂停一秒钟然后继续 - 但我拥有的代码应该清
我有一个由 jQuery ajax 提交的表单,它有服务器端的错误验证。在发送之前我显示一个 gif 加载器和一些加载文本,当验证在成功方法上发回时,我会显示相应的错误消息。此消息在 x 秒后超时隐藏
我是一名优秀的程序员,十分优秀!