如何在javascript中停止功能

jay*_*iya 1 javascript

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

jsfiddle链接:

`<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);

    }
});
Run Code Online (Sandbox Code Playgroud)

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

Bar*_*ski 6

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

var interval;
Run Code Online (Sandbox Code Playgroud)

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

interval = setInterval(.....);
Run Code Online (Sandbox Code Playgroud)

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

clearInterval(interval);
Run Code Online (Sandbox Code Playgroud)

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