我编写了一些函数,需要不断地执行它们。
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
在这种情况下不起作用。
我该如何修复它?请帮忙!
附注对不起我的英语不好!
最佳答案
将 posUp
和 posDown
作为回调函数添加到 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/