未检测到jQuery编号

未检测到jQuery编号,jquery,Jquery,我得到了一段代码,它每3秒钟检查一次按钮是否悬停。如果是,它将重置。 如果它没有悬停,它应该记录一行,上面写着“太晚了!”但事实并非如此。我认为这与if语句有关,它检查数字 var seconds = 3; var timer; $('#button').hover(function(){ seconds = 3; }); timer = setInterval(function(){ --seconds; console.log(seconds); }, 1000); if

我得到了一段代码,它每3秒钟检查一次按钮是否悬停。如果是,它将重置。 如果它没有悬停,它应该记录一行,上面写着“太晚了!”但事实并非如此。我认为这与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);
试试那样的