如何在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);
}
});
Run Code Online (Sandbox Code Playgroud)
当mouseout再次出现时我想重置timer()函数mousein然后开始count = 3
您在两个不同的函数(事件句柄)中使用相同的间隔,因此您必须声明一个全局变量.在脚本的最开头,声明:
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对象是通过引用传递的.
| 归档时间: |
|
| 查看次数: |
100 次 |
| 最近记录: |