如何在javascript中停止功能

时间:2014-11-06 10:00:11

标签: javascript

如何在发生mouseout事件时停止time()?

jsfiddle link:

`<div id="j" style="height:50px; width:50px; background-color:red;">Hello</div`>


$("#j").mouseenter(function(){
    var count = 3;
    var counterIncrement=1;
    setInterval(timer, 1000); 
    function timer() {
        count = count+counterIncrement;
        if (count == 3  ) {
            counterIncrement = +counterIncrement;
        }
         console.log(count);

    }
});

我想重置timer()函数,当mouseout再次出现时,mousein然后开始count = 3

2 个答案:

答案 0 :(得分:6)

在两个不同的函数(事件句柄)中使用相同的间隔,因此必须声明一个全局变量。 在脚本的最开头,声明:

var interval;

在一个事件句柄中为此变量分配时间间隔:

interval = setInterval(.....);

并在需要时在另一个句柄中清除它:

clearInterval(interval);

就是这样。因为变量是全局声明的,所以它将在两个函数作用域中被识别。它有效,因为interval对象是通过引用传递的。

答案 1 :(得分:2)

  1. 捕获setInterval()
  2. 的返回值
  3. 致电clearInterval(the_value_you_returned_earlier)