2010-08-29 73 views
3

所以,停止jQuery的排隊事件

我有這個演示站點最多:

http://webspirited.com/ha2/

如果你將鼠標懸停在主頭(不在IE)。你會注意到圖像有點變化,

這就是我想要的。

但是,敏銳的目光會注意到,如果您將鼠標懸停在開關上,它將排隊等待事件。

我該如何阻止它做這種行爲?

回答

6

jQuerys .stop()來救援。

$('#element').stop(true, true).animate({}); 

如果你正在做任何形式的動畫與jQuery,stop()將結束隊列中。第一個參數表示是否清除完整隊列,第二個參數表示是否跳轉到當前正在運行的動畫的結尾。

您在這裏獲得的另一個選項是檢查元素是否爲當前動畫,如果是,則跳過新的.animate方法。例如:

$('#element').hover(function(){ 
    if(!$(this).is(':animated'){ // only go in here if $(this) is NOT animated 
     // $(this).animate({}); 
    } 
}, function(){ 
}); 

參考:.stop():animated

+1

.stop(true和false)。工作完美。 我唯一的問題是,在你呼叫停止之後(例如,當你關閉鼠標時)它會造成一些延遲。 這是爲什麼? – Hailwood 2010-08-29 09:37:39

1

在這個插件請看:http://cherne.net/brian/resources/jquery.hoverIntent.html

hoverIntent是試圖 來確定用戶的意圖插件......像 水晶球,只用鼠標 運動!它的工作原理類似於(並且源自jQuery的內置懸停的 )。 但是,調用onMouseOver函數,而不是立即 而不是立即 等待,直到用戶的鼠標在撥打電話前減慢 。

+0

聽起來非常有用,感謝分享鏈接:) – migajek 2010-08-29 09:41:13