2010-11-18 65 views
7

我有下面的代碼,當另一個div被蒙上陰影時,切換div的可見性。它在工作正常,但如果你的鼠標和反覆發作它會將所有的切換的:jQuery切換鼠標懸停 - 阻止隊列

$(document).ready(function() { 
    $('.trigger').mouseover(function(){ 
     $('.info').toggle(400); 
    }).mouseout(function(){ 
     $('.info').toggle(400); 
    }); 
}); 

我已經試過這一點,但它似乎沒有工作(它創建與切換的可見性問題div和結果根本沒有顯示它)

$(document).ready(function() { 
    $('.trigger').mouseover(function(){ 
     $('.info').stop().toggle(400); 
    }).mouseout(function(){ 
     $('.info').stop().toggle(400); 
    }); 
}); 

我該如何擺脫隊列?

+0

你真的應該緩存'.info'選擇。 – Stephen 2010-11-18 16:02:15

+0

如果你打算緩存選擇器Stephen,那麼你可以緩存整行......不幸的是,這對丹的問題無濟於事。有些人爲他人簡化他們的代碼以回答有問題的問題。我也同意約翰丹應該接受成爲參與者而不是用戶 – Blowsie 2010-11-18 16:05:45

+0

您只接受7個問題中的1個,點擊我的問題,然後接受您爲每個問題選擇的答案 – Blowsie 2010-11-18 16:17:33

回答

13

使用.dequeue()函數和.stop()

.dequeue().stop() 

在這這裏找到優秀的文章,我確定它會告訴你,你想知道什麼。

http://css-tricks.com/examples/jQueryStop/

而且我會用。 show() and .hide()而不是.toggle()只是爲了節省jquery的任何困惑。

編輯:更新

問題是動畫心不是整理,利用真,真啓動另一跳到結束。

Example

$('.trigger').mouseover(function() { 
    $('.info').stop(true, true).show(400); 
}).mouseout(function() { 
    $('.info').stop(true, true).hide(400); 
}); 
+0

謝謝。代碼現在是這樣的: $(document).ready(function() { \t $('.trigger').mouseover(function(){ \t \t $('.info').dequeue().stop().show(400); \t }).mouseout(function(){ \t \t $('.info').dequeue().stop().hide(400); \t }); }); 但是,這只是作爲它在原始帖子中的第二個片段中的行爲一樣。似乎仍然排隊動畫,但得到真正的困惑,並沒有顯示任何內容。 – Dan 2010-11-18 16:08:06

+0

這個更新對你有好處嗎,丹? – Blowsie 2010-11-19 12:48:24

+0

感謝Blowsie它對我有幫助 – srini 2012-10-10 10:18:50

0

你應該試試這個

$(".trigger").hover(function() { $(".info").stop(true).toggle(400); });