0
我有一个使用jquerys animate的鼠标悬停效果。该效果使得div在mouseover上的长度增加了* 2,并缩短了mouseleave的长度。如果你真的很快地移动鼠标 - 这种效果没有时间赶上,所以div只是在不断增长。jquery在等待回调时禁用鼠标悬停
无论如何禁止任何进一步的事件触发元素,直到达到回调?
我有一个使用jquerys animate的鼠标悬停效果。该效果使得div在mouseover上的长度增加了* 2,并缩短了mouseleave的长度。如果你真的很快地移动鼠标 - 这种效果没有时间赶上,所以div只是在不断增长。jquery在等待回调时禁用鼠标悬停
无论如何禁止任何进一步的事件触发元素,直到达到回调?
我刚想到我显然是在回答错误的问题。我不知道有任何方法可以阻止进一步的事件。为了后代的缘故,我会在下面留下我原来的答案。加上它可能做你想做的,如果你只是想在快速鼠标移动后元素停止增长/缩小。
没有看到你确切的代码,我不能说哪儿来把它,但你可以使用stop()
:
$('div').mouseOver(
function(){
$(this).stop().animate({'width':'200px'},500);
},
function(){
$(this).stop().animate({'width':'100px'},500);
}
);
这可能是不可靠的数字比你真的使用,但是这无论如何,这个想法。不过,实现这一点几乎肯定有更好的方法。
演示结束于jsbin。