我得到了这段代码,如果#button
悬停,我会每隔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
}
答案 0 :(得分:1)
您的代码超出了区间功能。因此,当您的间隔函数在每秒后被调用时,外部代码只会被调用一次,而不会再被调用。你应该尝试这样的事情
var seconds = 3;
var timer;
$('#button').hover(function(){
seconds = 3;
});
timer = setInterval(function(){
--seconds;
if (seconds == 0){
alert('Too late!');
} else {
// do nothing
}
}, 1000);
以下是操作中的代码Fiddle
答案 1 :(得分:0)
你太晚了"功能在您的计时器外运行。因此它只会运行一次,而不会再运行一次。
var seconds = 3;
setInterval(function(){
--seconds;
if (seconds == 0){
alert('Too late!');
}
console.log(seconds);
}, 1000);
尝试类似的东西