settimeout 回调 递归妙用

对函数a进行3次循环,每隔一秒执行一次。但是for或while不能决定循环间隔的时间,想到递归,在a()执行完后调用setTimeout执行下一次循环。

	function b(){
		a()
		window.setTimeout(b,1000)
		}

 

例:循环变色,边框闪烁

<script language="javascript">
$(document).ready(function(){

	var i = 15

function change(obj) {
    yelo = function (obj) {
        obj.css("border", "1px solid  #FF0")
    }
    red = function (obj) {
        obj.css("border", "1px solid red")
    }
    if (i < 0) {
        window.clearTimeout(Go);
        return false;
    }
    if (i % 2 == 1) {
        yelo(obj)
    } else {
        red(obj)
    }
    Go = window.setTimeout(function () {
        change(obj)
    }, 200)
    i--
}
change($('.div'))
	})
</script>

 

posted @ 2012-04-25 23:15  break_happy  Views(15291)  Comments(0Edit  收藏  举报