Jquery 在X个周期后停止查询动画

Jquery 在X个周期后停止查询动画,jquery,animation,Jquery,Animation,在任何地方都找不到这个-或者我找错了问题 我在查询中运行了一个动画,客户端希望它在运行了几次之后停止。我认为最好声明变量,添加到它,并在运行了X个周期后停止,但不知道如何执行。这是基本原则 $(function(){ titles(); }); function titles() { var cycles = 0; // ANIMATION START SCRIPT IS IN HERE } function titleSlider() { var cycles = cycles + 1;

在任何地方都找不到这个-或者我找错了问题 我在查询中运行了一个动画,客户端希望它在运行了几次之后停止。我认为最好声明变量,添加到它,并在运行了X个周期后停止,但不知道如何执行。这是基本原则

$(function(){ titles(); });

function titles() {
var cycles = 0;
// ANIMATION START SCRIPT IS IN HERE
}

function titleSlider() {
var cycles = cycles + 1;

// ANIMATION SCRIPT IS IN HERE

if (cycles = 10) { stop };
}

使用Promissions可以解决这个问题,您只需在函数内部延迟动画调用,并在检查10个周期后在完成时调用相同的函数

$(函数(){
头衔();
});
职能名称(){
var循环=0;
var titleSlider=函数(){
循环++;
$(“#测试”).fadeOut({
“不透明度”:“0”
},1000)。承诺()。完成(函数(){
如果(周期<10){
标题滑块();
}
});
$('测试').delay(1000).fadeIn(1000);
console.log(周期)
}
标题滑块();
}


测试
递归是如何发生的,如果它一次又一次地动画化,那么一定会有某种递归,如果没有看到,就无法告诉您如何在多次重复之后停止该递归iterations@adeneo您可以通过不发起呼叫来实现这一点,除非在之前的呼叫中实现了承诺,这有点像伪序列结构。@OQX-如果它使用承诺,这很好,但是有很多方法可以创建递归,因此需要注释以及OP为什么应该发布实际代码。
function titles() {
    var cycles = 0;
    // ANIMATION START SCRIPT IS IN HERE

    function titleSlider() {
        cycles += 1;

        // ANIMATION SCRIPT IS IN HERE
        $('target element').animate({/*animation properties*/}, function(){
            if(cycles != 10){
                titleSlider();
            }
        });
    }

    titleSlider();   
}