.stop()带有回调的多个菊花链式UI动画

时间:2013-04-24 04:47:19

标签: jquery

jsfiddle

我正在用jQuery制作幻灯片。每张幻灯片都有多个图层(幻灯片中的幻灯片)。我正在尝试添加一个停止按钮,它将停止所有动画。我遇到的问题是停止按钮实际上只在点击一次时“有时”停止幻灯片放映。但双击时“通常”会停止播放幻灯片。如何让所有动画停止?

整个代码都在上面链接的jsfiddle上。

这是我到目前为止所尝试的内容:

$("#stop").live("click", function() {

    // tried this
    /*
    $('#'+slides['curSlide']).stop(true,false);
    $('#'+slides[ slides['curSlide'] ]['curLayer']).stop(true,false);
    */

    // tried this
    /*
    jQuery.fx.off = true;
    */

    // tried this
    /*
    $('#slides > .slide').each(function(index){
        $(this).stop(true);
        $('#'+index+' > .slideLayer').each(function(){
            $(this).stop(true);
        });
    });
    */

});

1 个答案:

答案 0 :(得分:1)

您正在使用delay来触发动画。来自docs

  

.delay()方法最适合延迟排队的jQuery效果。因为它是有限的 - 例如,它没有提供取消延迟的方法 - .delay()不能替代JavaScript的本机setTimeout函数,这可能更适合某些用例。

由于它没有提供取消延迟任务的直接方法,因此您需要设置一个标记,延迟功能可以将其作为一种中断信号。

相关问题