解决方案 »

  1.   

    t = window.setInterval(showTimer,2000); 
    你的时间控制器设在了showTimer()方法中,而每次调用可能出现重复定义的问题,所以我觉得那不你在i--后面清下t变量,要不你考虑把这个时间器设在locking方法中试试看,应该能解决
      

  2.   


    function  locking(){
      var i=4;
      var t;
      var showarea=document.getElementById("queren_gr");
      showarea.style.display="block";  
      function showTimer(){ 
      if(i==0){
        showarea.style.display="none";
        window.clearInterval(t);
       }
      else{
        i --;
        document.getElementById("timer").innerHTML= i;
       }  
      }
      showTimer();
      t = window.setInterval(showTimer,2000); 
    }
      

  3.   

        function locking() {
            var i = 4;
            var t;
            var showarea = document.getElementById("queren_gr");
            showarea.style.display = "block";
            showTimer();
            function showTimer() {
                if (i == 0) {
                    showarea.style.display = "none";
                    window.clearInterval(t);
                }
                else {
                    i--;
                    document.getElementById("timer").innerHTML = i;
                }
            }
            t = window.setInterval(showTimer, 2000);

        }放外面来,放里面会有多个计时器启动,而你的t只保存的是最新的一个,其他的还在继续运行