2009-12-13 77 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);});