var n = $("#lblNum").val(); //数字
for (i = 0; i < n; i++) {
    setTimeout("testFun()", 1000);
}
function testFun () {
    var num = $("#lblNum").val();
    $("#lblNum").val(parseInt(num) - 1);
}
如代码,现在是页面停顿一会lblNum的值直接变成0,我想要的效果是等一秒,lblNum的值减一,直到减到0位置,可以看到中间的过程。求高人指点,怎么实现。

解决方案 »

  1.   


    function testFun () {
        var num = $("#lblNum").val();
        if(num =="0"||num==""||parseInt(num)<0||!/^\d+$/g.test(num)) return;
        $("#lblNum").val(parseInt(num) - 1);
        setTimeout("testFun()", 1000);//不用放在循环里;放这里即可
    }
    //调用testFun ()即可
      

  2.   

    var n = $("#lblNum").val();var t=setInterval("testFun()", 1000);  function testFun () 

       n--;
       if(n<0){
         clearInterval(t);
        }
        $("#lblNum").val(n);
     } 
      

  3.   

    for (i = 0; i < n; i++) {
        setTimeout("testFun()", 1000);
    }这循环会一次性设置n个延迟,然后1秒后执行n次testFun()