我正在用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);
});
});
*/
});
答案 0 :(得分:1)
您正在使用delay
来触发动画。来自docs:
.delay()方法最适合延迟排队的jQuery效果。因为它是有限的 - 例如,它没有提供取消延迟的方法 - .delay()不能替代JavaScript的本机setTimeout函数,这可能更适合某些用例。
由于它没有提供取消延迟任务的直接方法,因此您需要设置一个标记,延迟功能可以将其作为一种中断信号。