2010-09-26 60 views
0

我有一个使用jquerys animate的鼠标悬停效果。该效果使得div在mouseover上的长度增加了* 2,并缩短了mouseleave的长度。如果你真的很快地移动鼠标 - 这种效果没有时间赶上,所以div只是在不断增长。jquery在等待回调时禁用鼠标悬停

无论如何禁止任何进一步的事件触发元素,直到达到回调?

回答

1

我刚想到我显然是在回答错误的问题。我不知道有任何方法可以阻止进一步的事件。为了后代的缘故,我会在下面留下我原来的答案。加上它可能做你想做的,如果你只是想在快速鼠标移动后元素停止增长/缩小。

没有看到你确切的代码,我不能说哪儿来它,但你可以使用stop()

$('div').mouseOver(
    function(){ 
    $(this).stop().animate({'width':'200px'},500); 
    }, 
    function(){ 
    $(this).stop().animate({'width':'100px'},500); 
    } 
); 

这可能是不可靠的数字比你真的使用,但是这无论如何,这个想法。不过,实现这一点几乎肯定有更好的方法。

演示结束于jsbin