[英]Recursive function JS
I've written a few functions and need to execute them one after another endlessly. 我已经写了一些函数,需要不断地执行它们。
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();
I've already found a way to make it work, but I need to call a function every time manually. 我已经找到了使其工作的方法,但是我需要每次手动调用一个函数。
The problem is, when using a callback
I'm getting a "maximum call stack size exceeded" error, after that it's starting to work. 问题是,在使用callback
时,出现“超出最大调用堆栈大小”错误,此后开始工作。
setTimeout
is not working in this case. setTimeout
在这种情况下不起作用。
How can i fix it? 我该如何解决? Please help! 请帮忙!
PS Sorry for my English! PS对不起,我的英语!
Add the posUp
and posDown
as a callback function to your jQuery.animate
. 将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()
I've "solved" this problem by adding a callback and removing background-position.Thanks a lot! 我通过添加回调并删除背景位置来“解决”此问题。非常感谢!
var bGposition = $("ul.sigProClassic li.sigProThumb a.sigProLink img.sigProImg");
function posDown() {
bGposition.animate({
backgroundPositionX: '100%',
backgroundPositionY: '100%',
}, {
duration: 3000,
queue: true,
complete: function() {
bGposition.animate({
backgroundPositionX: '0%',
backgroundPositionY: '0%',
}, {
duration: 3000,
queue: true,
complete: posDown()
})
}
})
}
posDown();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.