在回答这个关于 jQuery 效果的问题时,我考虑过callback
使用.fadeIn( 500, my_function )
.
虽然原则上这是一个可行的想法,但我不知道(如果允许回调递归,jQuery 文档也没有 :( ):
function keep_animating(){
$("#id").fadeIn(500).fadeOut(500, keep_animating );
}
在回答这个关于 jQuery 效果的问题时,我考虑过callback
使用.fadeIn( 500, my_function )
.
虽然原则上这是一个可行的想法,但我不知道(如果允许回调递归,jQuery 文档也没有 :( ):
function keep_animating(){
$("#id").fadeIn(500).fadeOut(500, keep_animating );
}
您可以添加调试器断点并测试堆栈大小是否增加。:)
然而,由于动画/淡入淡出使用 setTimeout/setInterval 我高度猜测调用深度不会增加,即它不容易发生堆栈溢出。
您的解决方案将递归,并最终破坏堆栈 - 但您将有相当长的一段时间 - 取决于浏览器 - 直到它完成。对于快速演示,这很好,但对于生产就绪代码,您需要采用非递归方法,例如:
function pulse(){
$("#id").fadeIn(500).fadeOut(500);
}
setInterval(pulse, 1000);
有很多方法可以解决这个问题,但应该能让你到达那里。