javascript - 递归函数JS

标签 javascript jquery

我编写了一些函数,需要不断地执行它们。

var bGposition = $("ul.sigProClassic li.sigProThumb a.sigProLink img.sigProImg");
function posDown() {
    bGposition.css({
        backgroundPosition: "0% 0%",
    }).animate({
        backgroundPositionX: '100%',
        backgroundPositionY: '100%',
    }, 3000)
 }

function posUp() {
    bGposition.css({
    backgroundPosition: "100% 100%",
    }).animate({
        backgroundPositionX: '0%',
        backgroundPositionY: '0%',
    }, 3000)
}
posUp();
posDown();
posUp();
posDown();

我已经找到了一种让它工作的方法,但我每次都需要手动调用一个函数。

问题是,当使用回调时,我收到“超出最大调用堆栈大小”错误,之后它开始工作。

setTimeout 在这种情况下不起作用。

我该如何修复它?请帮忙!

附注对不起我的英语不好!

最佳答案

posUpposDown 作为回调函数添加到 jQuery.animate 中。

var bGposition = $("ul.sigProClassic li.sigProThumb a.sigProLink img.sigProImg");
function posDown() {
    bGposition.css({
        backgroundPosition: "0% 0%",
    }).animate({
        backgroundPositionX: '100%',
        backgroundPositionY: '100%',
    }, 3000, posUp)
 }

function posUp() {
    bGposition.css({
    backgroundPosition: "100% 100%",
    }).animate({
        backgroundPositionX: '0%',
        backgroundPositionY: '0%',
    }, 3000, posDown)
}
posUp()

关于javascript - 递归函数JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53354575/

相关文章:

javascript - Bootstrap popover 手动关闭需要点击两次才能重新打开

javascript - 使用 JavaScript 从 YouTube 视频中截取屏幕截图

jquery - 在特定选项上显示文本字段选择

javascript - 如何在 ASP.NET 中序列化通用列表以便 jQuery DataTables 可以接受它?

javascript - 在设定的窗口宽度处调用 JS 函数

javascript - 在 d3 中设置旋转方向

javascript - 获取数组值 - JQuery

jQuery - css ('border-width' ) 在 Firefox 上作为空字符串返回,但在 Chrome 上不返回

javascript - Bootstrap 模式不适用于实时服务器

javascript - JQuery mouseleave 函数快速返回而不是转换?