2010-11-14 52 views
1

我有一段簡單的代碼,當用戶將鼠標懸停在幻燈片上的圖像上時,相關文本會在圖像上淡出。但是,如果用戶來回徘徊幾次,效果就會停止工作?jQuery - 懸停很多時間打破JavaScript?

$('div.slideshowImage').hover(function() { 
$('div.slideshowImageText').stop().fadeIn('500'); 
}, 
function() { 
$('div.slideshowImageText').fadeOut('500'); 
}); 

回答

4

你需要清除隊列爲好,像這樣:

$('div.slideshowImage').hover(function() { 
    $('div.slideshowImageText').stop(true).fadeIn('500'); 
}, function() { 
    $('div.slideshowImageText').fadeOut('500'); 
}); 

.stop()第一個參數告訴它是否要清除隊列或不...當前你停止動畫,但重複的懸停將排隊競爭動畫與你的淡入淡出......當你不希望隊列稍後執行,清除它,否則它會干擾像這裏一樣。

+0

謝謝。儘管如此,這似乎仍然無法解決。如果你快速將鼠標懸停在狗的圖像上超過3次,它就會停止工作,你必須刷新頁面才能重新獲得它。http://test.clothesaid.co.uk/news/detail/vulputate-egestas-tellus -ultricies – Yammi 2010-11-14 11:54:37

+0

@Yammi - 你有*另一個*問題,其中你的淡入淡出值是從前一個淡出未被完整存儲的,使用'.animate()'來表示,如下所示:http://www.jsfiddle.net/nick_craver/5Mp2v/ – 2010-11-14 12:03:34

+0

太棒了!因此擁有.unbind()會在第一個實例中刪除歸因於該事件的內容? – Yammi 2010-11-14 12:11:36