2009-12-13 83 views
3

我正在寻找一种重复鼠标悬停操作的方式,直到用户离开目标为止。一个mouseover调用一次函数,我正在寻找一种方法来继续做功能。连续鼠标悬停

干杯, Gazler。

回答

6

你需要使用setInterval()

var to; 
var doStuff = function() { 
    console.log('doing stuff...'); 
}; 

$('a').hover(function(e) { 
    to = window.setInterval(doStuff, 1); 
},function(e) { 
    window.clearInterval(to); 
}) 
+0

完美,欢呼声。 – Gazler 2009-12-13 20:58:19

+0

您正在为所有锚标记使用单个计时器变量 - 大部分时间都适用,但是当您嵌套锚标记时,它可能无法正常工作 - 由于事件冒泡,您将创建两个(或更多)间隔 - 一个为每个嵌套元素。您将只清除一个 – 2009-12-13 21:07:48

+1

@dionadar:嵌套的锚点是非法的:http://www.w3.org/TR/html401/struct/links.html#h-12.2.2 – David 2009-12-13 21:14:39

0
//continuous 


var timer; 

var doStuff=function(quit){ 

    console.log('doing stuff'); 

    if (quit!==true){ 

    timer=setTimeout(doStuff, 100); 

    } 

    else{ 

    clearTimeout(timer); 

    } 

}; 

$('div#continuous').bind('mouseenter', doStuff).bind('mouseleave', function(){doStuff(true);});