У меня есть следующее:
window.setTimeout(function() {
    window.location.href = 'file.php';
}, 115000);
Как я могу, через функцию .click, reset счетчик посередине обратного отсчета?
У меня есть следующее:
window.setTimeout(function() {
    window.location.href = 'file.php';
}, 115000);
Как я могу, через функцию .click, reset счетчик посередине обратного отсчета?
Вы можете сохранить ссылку на этот таймаут, а затем вызвать clearTimeout в этой ссылке.
// 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(...);
		clearTimeout() и подайте ссылку setTimeout, которая будет числом. Затем повторно вызовите его:
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()
}
В этом примере, если вы не нажмете на элемент body за 5 секунд, цвет фона будет черным.
Ссылка:
Примечание: setTimeout и clearTimeout не являются собственными методами ECMAScript, а Javascript-методами глобального пространства имен Windows.
Вам нужно будет запомнить тайм-аут "Таймер", отменить его, а затем перезапустить:
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);
}); 
Что-то в этом роде!
Этот таймер запустит оповещение "Hello" через 30 секунд. Однако каждый раз, когда вы нажимаете кнопку таймера reset, он очищает таймер, а затем снова устанавливает его. Как только он выстрелил, игра заканчивается.
<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>
		$(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])} );
    })();
});
		В reset таймер вам нужно будет установить и очистить переменную таймера
$time_out_handle = 0;
window.clearTimeout($time_out_handle);
$time_out_handle = window.setTimeout( function(){---}, 60000 );
		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();
 я знаю, что это старая тема, но я придумал это сегодня
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
}
 и вы вызываете с помощью
afterTimer('<timername>string', <interval in milliseconds>int, function(){
   your code here
});