jQuery slideToggle行为

时间:2012-03-04 18:30:32

标签: jquery jquery-plugins

当我在篮子上徘徊(#cart_block_top),并且没有等待动画的结束突然将其从篮子中移除时,动画仍然会突然迅速结束,然后才会向上滑动。 这是代码:

$('#cart_block_top').hover(function() {
    $("#cart_block_slide_content").stop(false, true).slideToggle('slow');
});

以下是链接:http://layot.prestatrend.com/ 有人帮忙吗?

2 个答案:

答案 0 :(得分:0)

您还可以使用callback来了解动画何时完成,然后调用

$("#cart_block_slide_content").stop(false, true).slideToggle('slow');

仅在没有动画正在进行时。

Quoting Jquery

  

.slideToggle([duration] [,callback])

     

duration一个字符串或数字,用于确定动画运行的时间。

     

callbackA动画完成后调用的函数。

例如:

var isAnimationCompleted = true;

function onAnimationCompleted(){
    isAnimationCompleted = true;
}

$('#1').hover(function(){
    if (isAnimationCompleted){
        $("#div").stop(false, true).slideToggle('slow',onAnimationCompleted);
        isAnimationCompleted = false;
    }
});

JSFiddle live example

答案 1 :(得分:0)

.stop()需要两个布尔值,首先是它应该清除队列,这里你有假。第二个是它应该是jumptoend,你设置为true,所以当你停止该功能时它将跳转到动画的结尾。试试这个,效果不好,但看起来更好。

$("#cart_block_slide_content").stop().slideToggle(1000);