如何在发生mouseout事件时停止time()?
`<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
答案 0 :(得分:6)
在两个不同的函数(事件句柄)中使用相同的间隔,因此必须声明一个全局变量。 在脚本的最开头,声明:
var interval;
在一个事件句柄中为此变量分配时间间隔:
interval = setInterval(.....);
并在需要时在另一个句柄中清除它:
clearInterval(interval);
就是这样。因为变量是全局声明的,所以它将在两个函数作用域中被识别。它有效,因为interval对象是通过引用传递的。
答案 1 :(得分:2)
setInterval()
clearInterval(the_value_you_returned_earlier)