2013-02-12 94 views
0

我使用下面的代码来生成工具提示框。当用户悬停在指定的跨度上时,该框会切换。这个标志是我在页面上有20或30个,所以如果用户将鼠标放在列表中,我会看到所有30个按顺序出现并消失。如果有另一个工具提示目前可见或正在进行动画处理,有什么办法可以阻止效果运行?如何停止同时执行两个悬停效果?

$('td.aO .tTCont').hover(function(){ 
    $(this).siblings('div.toolTip').delay(100).fadeToggle('200');}) 
+0

考虑一下,我可以对悬停功能的'onMouseOut'部分做回调以隐藏所有工具提示吗?那可能吗? – Kev 2013-02-12 09:49:29

回答

1

您可以.stop()停止当前的动画,并删除所有排队的/有.clearQueue()挂起动画。

在为另一个动画定制动画之前,为它们调用(其中一个)它们会起到诀窍的作用。

您可能需要与他们一起玩,才能找到一个看起来没问题的配置。 :)

+0

因此,需要如下所示: '$('td.aO .tTCont')。hover(function(){' '$(' td.aO .tTCont ')停止();'' $(本).siblings(' div.toolTip 200' ) ')延迟(100).fadeToggle(';})' – Kev 2013-02-12 09:37:16

+0

确保也搭上仍然以.stop()方式出现的那些只会删除当前正在执行的那个。 – 2013-02-12 09:41:51

+0

谢谢,以后有点打在这里就是我与去: '$( 'td.aO .tTCont')悬停( \t \t \t功能(){ \t \t \t \t $(本)。兄弟姐妹( 'div.toolTip')淡入( '200'); \t \t \t}, \t \t \t函数(){ \t \t \t \t $( 'div.toolTip')clearQueue()停止(。 ).css('display','none'); \t \t \t})' – Kev 2013-02-12 10:23:10

0

试试这个代码:

$('td.aO .tTCont').hover(function(){ 
    $(this).children('.toolTip').delay(100).fadeToggle('200');}) 
+0

感谢您的建议,但是停止了完全显示的工具提示... – Kev 2013-02-12 09:36:26