未检测到jQuery编号
我得到了一段代码,它每3秒钟检查一次按钮是否悬停。如果是,它将重置。 如果它没有悬停,它应该记录一行,上面写着“太晚了!”但事实并非如此。我认为这与if语句有关,它检查数字未检测到jQuery编号,jquery,Jquery,我得到了一段代码,它每3秒钟检查一次按钮是否悬停。如果是,它将重置。 如果它没有悬停,它应该记录一行,上面写着“太晚了!”但事实并非如此。我认为这与if语句有关,它检查数字 var seconds = 3; var timer; $('#button').hover(function(){ seconds = 3; }); timer = setInterval(function(){ --seconds; console.log(seconds); }, 1000); if
var seconds = 3;
var timer;
$('#button').hover(function(){
seconds = 3;
});
timer = setInterval(function(){
--seconds;
console.log(seconds);
}, 1000);
if (seconds == 0){
console.log('Too late!');
} else {
// do nothing
}
您的代码超出了间隔函数的范围。因此,虽然间隔函数在每秒钟后都会被调用,但外部的代码只会被调用一次,永远不会再被调用。你应该试试这样的
var seconds = 3;
var timer;
$('#button').hover(function(){
seconds = 3;
});
timer = setInterval(function(){
--seconds;
if (seconds == 0){
alert('Too late!');
} else {
// do nothing
}
}, 1000);
下面是正在运行的代码您的“太迟”功能正在计时器之外运行。因此,它只能运行一次,永远不会再运行
var seconds = 3;
setInterval(function(){
--seconds;
if (seconds == 0){
alert('Too late!');
}
console.log(seconds);
}, 1000);
试试那样的