Javascript 如何重复此功能

Javascript 如何重复此功能,javascript,infinite-loop,Javascript,Infinite Loop,我有这个功能,我需要它从开始到结束重复 processSlider: function() { function a() { var c = document.querySelector(".layout-process-slider .process-point.active"); if (!c.nextElementSibling) { $(".layout-process-slider .process-point").fir

我有这个功能,我需要它从开始到结束重复

processSlider: function() {
    function a() {
        var c = document.querySelector(".layout-process-slider .process-point.active");
        if (!c.nextElementSibling) {
            $(".layout-process-slider .process-point").first().trigger("click")
        } else {
            $(".layout-process-slider .process-point.active").next().trigger("click")
        }
    }
    if ($(".layout-process-slider").length) {
        var b = setInterval(a, 2500)
    }
    $(".layout-process-slider .process-point").click(function(d) {
        var c = $(this).data("select");
        $(this).siblings().removeClass("active");
        $(this).addClass("active");
        $(this).parent().parent().find(".items").children().removeClass("active");
        $(this).parent().parent().find('.item-info[data-item="' + c + '"]').addClass("active");
        if (d.originalEvent !== undefined) {
            window.clearInterval(b)
        }
    })
}
function f() {
 // ...
 f(); // <-- recurse
}

当它到达终点时,如何使其循环?

通常,您希望使用它

给你的函数起一个名字,让它在到达终点时调用自己

processSlider: function() {
    function a() {
        var c = document.querySelector(".layout-process-slider .process-point.active");
        if (!c.nextElementSibling) {
            $(".layout-process-slider .process-point").first().trigger("click")
        } else {
            $(".layout-process-slider .process-point.active").next().trigger("click")
        }
    }
    if ($(".layout-process-slider").length) {
        var b = setInterval(a, 2500)
    }
    $(".layout-process-slider .process-point").click(function(d) {
        var c = $(this).data("select");
        $(this).siblings().removeClass("active");
        $(this).addClass("active");
        $(this).parent().parent().find(".items").children().removeClass("active");
        $(this).parent().parent().find('.item-info[data-item="' + c + '"]').addClass("active");
        if (d.originalEvent !== undefined) {
            window.clearInterval(b)
        }
    })
}
function f() {
 // ...
 f(); // <-- recurse
}
函数f(){
// ...

f();//使用递归时,请记住维护一个条件以完成执行,否则您肯定会停止挂起浏览器i get
Uncaught RangeError:使用示例时超出了最大调用堆栈大小。@jarmerson,因为您没有递归基本情况。您需要一些逻辑来确定何时停止运行递归rsion。这是我正在处理的页面-这是我正在处理的页面,它有相同的滑块和相同的代码-但它在这个实例中循环。我不知道我的代码有什么不同:(