Проблема: Когда я объявляю clearInterval () / setInterval () или clearTimeout () / setTimeout () внутри функции, она ничего не делает.Причина, по которой я должен сбросить настройки, заключается в том, что пользователь может нажать, чтобы сбросить таймер.
Что я пробовал: Я хочу, чтобы функция выполнялась каждые 3 секунды (поэтому яиспользуя setInterval () против setTimeout ()), и сбросьте этот таймер при нажатии.Я пытался использовать setTimeout (), чтобы он имел clearTimeout () и setTimeout () в конце каждого выполнения функции.РЕЗУЛЬТАТ: выполняется один раз.
Приведенный ниже код аналогичен setInterval.РЕЗУЛЬТАТ: Он зацикливается и никогда не сбрасывается.
// Declare variables as global
var varTimerSpeed = 3000;
var varTimerInterval;
varTimerInterval = setInterval("someFunction()", varTimerSpeed);
function someFunction() {
// Reset timer
clearInterval(varTimerInterval);
varTimerInterval = setInterval("someFunction()", varTimerSpeed);
}
// Call the function
$(".class").live("click",function() { someFunction(); });
В некоторых функциях () выполняются другие вещи, которые выполняются должным образом, поэтому я знаю, что обработчик щелчка работает.