2011-01-28 3 views
1
$(function() { 
    setInterval(function(){clickRight();}, 5000); 
}); 

У меня есть эта функция, которая выполняется при загрузке слайдера. Однако, когда я добавляю другой setInterval, когда кто-то нажимает на следующую кнопку, он не сбрасывает setinterval, а создает еще один таймер.Как создать один экземпляр setinterval, где я могу изменить время?

Как сбросить главный таймер?

ответ

0

Вы можете удалить интервал с функцией clearInterval():

var myInterval = setInterval(function(){clickRight();}, 5000); 
.... 
clearInterval(myInterval); 
+0

Я уверен, что ОП это знает, но ищет другой ответ ... –

+0

, если я нажму следующую кнопку, и я сразу же сброшу таймер, похоже, просто сделаю еще один setinterval – Adam

+0

nm Я был var timer = когда он должен быть таймером = – Adam

1

это, вы не можете.

, но вы можете сделать это с помощью рекурсивного вызова setTimeout/setInterval.

что-то вроде:

var t, f, i = 100, s = 0; 

f = function() { 

    s++; 
    if(s> 100){ 
    s = 0; 
    clearInterval(t) 
    i+= 100 //<<--- 
    t = setInterval(f,i); // <-- yes a new Timer is created 
    } 
} 

t = setInterval(f,i); 
2

Вы не можете сбросить таймер. Вместо этого вам придется очистить таймер и снова установить его. Для этого вам просто нужно установить вам таймер переменной:

var timer = setInterval(function(){ /* some code */ }, 10000); 

Затем, когда вы хотите, чтобы очистить его использовать

clearInterval(timer); 
Смежные вопросы