Javascript 比设置间隔更好的方法?
我有下面的当前函数,但感觉有更好的方法来编写相同的东西。我正在寻找一些关于编写下面相同函数的最优化方法的见解,以及原因 注意这都在Javascript 比设置间隔更好的方法?,javascript,jquery,Javascript,Jquery,我有下面的当前函数,但感觉有更好的方法来编写相同的东西。我正在寻找一些关于编写下面相同函数的最优化方法的见解,以及原因 注意这都在$(function(){})的内部 看起来,根据您正在做的事情,您希望随时间切换元素的运动。您只需将原始函数m()设置为在第二个内部动画完成时执行的回调。您可以临时在第一个动画回调中使用此,而不是再次找到它。除此之外,我认为这里没有任何进一步的改进 m = function(){ $("#id").animate({marginRight : 0}, 'slow
$(function(){})的内部代码>
看起来,根据您正在做的事情,您希望随时间切换元素的运动。您只需将原始函数m()
设置为在第二个内部动画完成时执行的回调。您可以临时在第一个动画回调中使用此
,而不是再次找到它。除此之外,我认为这里没有任何进一步的改进
m = function(){
$("#id").animate({marginRight : 0}, 'slow', function(){
$(this).animate({marginRight : "15px"}, 'slow');
})
}
setInterval(m, 700);
编辑:
它使用setTimeout,但是,setTimeout是比setInterval更好的解决方案,因为它只会在前一个解决方案完成时将新的解决方案排队。这将有助于防止jquery 1.6目前使用的RAF出现问题。这是如何实现700ms延迟的?似乎在动画完成后,它首先被用来激活切换。这个数字并不重要,除非我误解了这个数字code@Maz你是对的,这个数字真的不重要,我只想在函数完成后再次调用它。而且-这正是我想要的for@jnolte-很好你找到了你需要的东西,但实际上,如果延迟的时间无关紧要,那么最好在问题中这样说。。。
m = function(){
$("#id").animate({marginRight : 0}, 'slow', function(){
$("#id").animate({marginRight : "15px"}, 'slow',m);
});
}
m();
m = function(){
$("#id").animate({marginRight : 0}, 'slow', function(){
$(this).animate({marginRight : "15px"}, 'slow');
})
}
setInterval(m, 700);
(function m(){
$("#id").animate({marginRight : 0}, 'slow', function(){
$(this).animate({marginRight : "15px"}, 'slow',function(){
setTimeout(m,700);
});
});
})();