2014-06-19 53 views
0

如果#button被徘徊,我得到這段代碼每隔3秒檢查一次。如果是,它會重置。 如果它沒有被徘徊,它應該記錄一行說'太晚了!'但事實並非如此。我認爲這與if語句在檢查數字方面有關。未檢測到jQuery編號

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 
} 

回答

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

+0

好吧,我不知道!謝謝,它的工作! – MaikThoma

0

你「亡羊補牢」功能正在運行的計時器之外。因此它只會運行一次而不會再次運行。

var seconds = 3; 

setInterval(function(){ 
    --seconds; 
    if (seconds == 0){ 
    alert('Too late!'); 
} 
    console.log(seconds); 
}, 1000); 

嘗試類似的東西