幻灯片效果发生太多次

Abs*_*Abs 2 javascript jquery

我在几个 div 的 onmouseover 和 onmouseout 上调用这个函数。

//Takes effect on divs with id, 62,63,64,65...
function slide_it(id){

    $('#options_'+id).slideToggle('slow');

}
Run Code Online (Sandbox Code Playgroud)

问题是,如果我将鼠标移过然后鼠标移开,然后再次将鼠标移过然后移开。如果我这样做几次,滑动效果发生的次数与我将鼠标移出 div 的次数相同,正如预期的那样。

但我想不通我怎么能做到这一次?我可以设置一个变量,但是我有几个使用这个函数的 div,我想不出一个简单的方法来做这个而不是将东西存储到一个数组中,但这很混乱!

我非常感谢任何易于实施的帮助!

感谢大家的帮助

Nic*_*ver 6

在您调用之前slideToggle(),使用.stop(true),这将结束当前动画(如果有),并且由于您正在链接,将立即开始您提供的动画,如下所示:

$('#options_'+id).stop(true).slideToggle('slow'); 
Run Code Online (Sandbox Code Playgroud)

从文档

.stop()在元素上调用时,当前正在运行的动画(如果有)会立即停止。例如,如果一个元素被调用.slideUp()when隐藏.stop(),该元素现在仍将显示,但将是其先前高度的一小部分。不调用回调函数。

示例:如果您快速进出,我不会等待完成滑动它,它会停止并在鼠标离开后立即开始滑出。