<script type="text/javascript">
$(function () {//unload的时候执行.
var timeLeft = 5;
var inteId = setInterval("elapses()", 500);
function elapses() {
if ($("#btn")) {
if (timeLeft <= 0) {
clearInterval(inteId);
return;
}
$("#btn").val("go"+timeLeft);
timeLeft--;
}
}
})
</script>
<body>
<input type="button" id="btn"/>
</body>
1、需求:实现定时重定向问题.
2、我简直是不敢相信我自己:
这哪里能错了···?
在IE就说缺少对象行“0”。
在Firefox就是到事件导向而已,button我值为空的,也没有报错.VS又没有指定哪里错.
补充,纠结了好久,发现了。如果将两个变量“timeLeft”和inteId都设为为加载前就没事了。
也就是说放在“$(function(){xxx})”之前.但是我还是不了解的是,如果我放在函数内,貌似也也没有错吧,
请帮我解释解释.

解决方案 »

  1.   

    貌似没问题
    不过我一般把公共变量写在$(function(){});外
      

  2.   

    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <script type="text/javascript">
    $(function () {//unload的时候执行.
    var timeLeft = 5;
    var inteId = setInterval(function(){
    if(timeLeft<=0){
    //clearInterval(inteId);//或return false;二选一
    return false;
    }else{
    $("#btn").val("go"+timeLeft);
    timeLeft--;
    }
    },500);
    })
     </script>
     
     <body>
     <input type="button" id="btn" value="测试用按钮"/>
     </body>
      

  3.   

    你这样试试?
    var inteId = self.setInterval(elapses, 500);
      

  4.   

    有问题的,大哥,我也想是应该没问题,但是browser的时候,过不了的!
      

  5.   

    貌似不是这地方错的吧,我只是判断button是不是已被加载罢了.
      

  6.   

    我觉得是setInterval执行顺序的问题。