我如何永远在jQuery中运行.animate函数?

$(this).css("left","100px"); function endless(){ $(this).animate({ left:'-=100px', },{ easing: "linear", duration: 5000, complete: function() { $(this).css('left','100px'); endless(); } }); }; endless(); 

这是我尝试过的,但使用这种方法我无法让事情发生变化。 我正在使用jQuery 1.3.2。 有什么建议?

你有参数动画错误。 它不需要选项哈希,只需要缓和,持续时间和回调的实际选项。 此外,使用this时需要注意。 最好将它作为一个参数传递给无穷无尽的函数。

 $(this).css("left","100px"); function endless(elem){ $(elem).animate( { left:'-=100px' }, "linear", 5000, function() { $(elem).css('left','100px'); endless(elem); } ); }; endless(this); 

你需要在回调中调用endless()。

 function endless(item) { $(item).animate({"left": "-=100px"}, 5000, "linear", function(){ $(item).css("left","100px"); endless(item); }); } endless($(".myBox")); 

您需要将$(this)替换$(this)要设置动画的元素的选择器。

大! 这正是我搜索的内容,但现在,

我终于想出了如何切换它。 使用以下函数,调用endless(0)停止,并使用endless(1)启用动画循环。

 //loop animation forever //args: takes 1 to loop, 0 to stop function endless(loop) { //animate forever if (loop==1) { $('#alink').animate( {'opacity':'toggle'}, 1000, function () { endless(1) } ); } //stop animation else { $('#alink').css('opacity',1).stop(); } }; //sample call $('#alink').toggle(function(){ endless(1) },function(){ endless(0) }); 

thanx初始代码!