clearTimeout不适用于点击事件

时间:2017-08-02 19:12:33

标签: javascript jquery

我创建一个滑块并使用setTimeout函数每5秒自动更改一次类名。

我想每次点击幻灯片选择器时再次重置计时器但是我的工作并不重要,clearTimeout只是不会停止该功能再次触发..下面的伪代码

   function autoAddClass(){
       console.log('changing class');
       setTimeout(autoAddClass, 1000); 
    }

    setTimeout(autoAddClass, 1000); // to run the function on load


    $('.post-nav-btn').on('click',function(e){
      e.preventDefault();

      clearTimeout(autoAddClass);
    });

2 个答案:

答案 0 :(得分:2)

var someVar = setTimeout(autoAddClass, 1000);

//clear the timeout, you don't clear the function
clearTimeout(someVar);

答案 1 :(得分:0)

您没有以正确的方式使用setTimeOut。 在您的代码中,您正在清除该功能。

请参阅此链接知道如何使用它。 W3School

我认为这是你想要的解决方案。

var timeout = null;
function autoAddClass(){
       console.log('changing class');

}
timeout = setTimeout(autoAddClass, 1000);  // to run the function on load

 $('.post-nav-btn').on('click',function(e){
      e.preventDefault();

      clearTimeout(timeout);
});