Câu trả lời:
Bạn có thể lưu trữ một tham chiếu đến thời gian chờ đó, và sau đó gọi clearTimeout
tham chiếu đó.
// in the example above, assign the result
var timeoutHandle = window.setTimeout(...);
// in your click function, call clearTimeout
window.clearTimeout(timeoutHandle);
// then call setTimeout again to reset the timer
timeoutHandle = window.setTimeout(...);
.clear()
đối tượng hết thời gian chờ.
window.setTimeout
trả về một số (ID bộ đếm thời gian) chứ không phải là "đối tượng hết thời gian".
clearTimeout () và cung cấp tham chiếu của setTimeout, đây sẽ là một số. Sau đó gọi lại nó:
var initial;
function invocation() {
alert('invoked')
initial = window.setTimeout(
function() {
document.body.style.backgroundColor = 'black'
}, 5000);
}
invocation();
document.body.onclick = function() {
alert('stopped')
clearTimeout( initial )
// re-invoke invocation()
}
Trong ví dụ này, nếu bạn không nhấp vào phần tử cơ thể trong 5 giây, màu nền sẽ là màu đen.
Tài liệu tham khảo:
Lưu ý: setTimeout và clearTimeout không phải là phương thức gốc ECMAScript, mà là phương thức Javascript của không gian tên cửa sổ toàn cầu.
Bạn sẽ phải nhớ thời gian chờ "Hẹn giờ", hủy nó, sau đó khởi động lại:
g_timer = null;
$(document).ready(function() {
startTimer();
});
function startTimer() {
g_timer = window.setTimeout(function() {
window.location.href = 'file.php';
}, 115000);
}
function onClick() {
clearTimeout(g_timer);
startTimer();
}
var myTimer = setTimeout(..., 115000);
something.click(function () {
clearTimeout(myTimer);
myTimer = setTimeout(..., 115000);
});
Một cái gì đó dọc theo những dòng!
Đồng hồ bấm giờ này sẽ kích hoạt hộp thông báo "Xin chào" sau 30 giây. Tuy nhiên, mỗi khi bạn nhấp vào nút hẹn giờ đặt lại, nó sẽ xóa bộ đếm thời gian và sau đó thiết lập lại. Khi nó bắn, trò chơi kết thúc.
<script type="text/javascript">
var timerHandle = setTimeout("alert('Hello')",3000);
function resetTimer() {
window.clearTimeout(timerHandle);
timerHandle = setTimeout("alert('Hello')",3000);
}
</script>
<body>
<button onclick="resetTimer()">Reset Timer</button>
</body>
var redirectionDelay;
function startRedirectionDelay(){
redirectionDelay = setTimeout(redirect, 115000);
}
function resetRedirectionDelay(){
clearTimeout(redirectionDelay);
}
function redirect(){
location.href = 'file.php';
}
// in your click >> fire those
resetRedirectionDelay();
startRedirectionDelay();
$(function() {
(function(){
var pthis = this;
this.mseg = 115000;
this.href = 'file.php'
this.setTimer = function() {
return (window.setTimeout( function() {window.location.href = this.href;}, this.mseg));
};
this.timer = pthis.setTimer();
this.clear = function(ref) { clearTimeout(ref.timer); ref.setTimer(); };
$(window.document).click( function(){pthis.clear.apply(pthis, [pthis])} );
})();
});
Để đặt lại bộ hẹn giờ, bạn sẽ cần đặt và xóa biến hẹn giờ
$time_out_handle = 0;
window.clearTimeout($time_out_handle);
$time_out_handle = window.setTimeout( function(){---}, 60000 );
tôi biết đây là một chủ đề cũ nhưng tôi đã đưa ra nó ngày hôm nay
var timer = []; //creates a empty array called timer to store timer instances
var afterTimer = function(timerName, interval, callback){
window.clearTimeout(timer[timerName]); //clear the named timer if exists
timer[timerName] = window.setTimeout(function(){ //creates a new named timer
callback(); //executes your callback code after timer finished
},interval); //sets the timer timer
}
và bạn gọi bằng cách sử dụng
afterTimer('<timername>string', <interval in milliseconds>int, function(){
your code here
});