Dak*_*ota 4 html jquery infinite-loop jquery-animate
一个简单的问题:为什么我能这样做
var start = function() {
$('#element').animate({}, 5000, 'linear', start);
}
Run Code Online (Sandbox Code Playgroud)
但不是这个
function start() {
$('#element').animate({}, 5000, 'linear', start());
}
Run Code Online (Sandbox Code Playgroud)
?
第一个工作完美,完成后重新启动动画.第二个简单地导致无限循环.
要么使用
function start() {
$('#element').animate({}, 5000, 'linear', start);
}
Run Code Online (Sandbox Code Playgroud)
要么
function start() {
$('#element').animate({}, 5000, 'linear', function(){ start(); });
}
Run Code Online (Sandbox Code Playgroud)
如果你想实际传递一些参数来启动,第二种情况很有用.
在您的第二个函数中,您正在执行该函数而不是传递对该函数的引用,因此它将进入无限循环。
从以下位置更改您的第二个功能:
function start() {
$('#element').animate({}, 5000, 'linear', start());
}
Run Code Online (Sandbox Code Playgroud)
到
function start() {
$('#element').animate({}, 5000, 'linear', start); //Notice the change to start
}
Run Code Online (Sandbox Code Playgroud)