<script type="text/javascript">var counts=10;var counting;function countDown(){ var test = document.getElementById("test"); test.disabled = true; counting = setInterval("countOne();",1000)}function countOne(){ var test = document.getElementById("test"); test.firstChild.nodeValue = "我同意"+counts; if(counts-- == "0"){ test.firstChild.nodeValue = "我同意"; test.disabled = false; clearInterval(counting); }}</script>
  <button id="test">我同意</button>
  <button onclick="m()">开始计时</button>上面代码中,功能是点"开始计时" ,会有10秒过后才能使用"我同意"这个按钮。运行程序,第一次点"开始计时",成功等待10秒后,就可以使用"我同意"这个按钮。第二次点"开始计时", 却出现了问题,秒针变成了负数的,不知道怎么回事,请大虾讲解! 谢谢...

解决方案 »

  1.   

    问题一:<button onclick="m()">开始计时</button>
    请问你这个m()是什么东西啊
      

  2.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
    </head>
    <body>
    <script type="text/javascript">
        var counts;
        var counting;
        function countDown() {
             counts = 10;
            var test = document.getElementById("test");
            test.disabled = true;
            counting = setInterval("countOne();", 1000);
        }
        function countOne() {
            
            var test = document.getElementById("test");
            test.firstChild.nodeValue = "我同意" + counts;
            if (counts-- == "0") {
                test.firstChild.nodeValue = "我同意";
                test.disabled = false;
                clearInterval(counting);
                
            }    }
          </script>
      <button id="test">我同意</button>
      <button onclick="countDown()">开始计时</button>
    </body>
    </html>
      

  3.   

    <script type="text/javascript">var counts=10;var counting;function countDown(){    var test = document.getElementById("test");    test.disabled = true;    counting = setInterval("countOne();",1000)}function countOne(){    var test = document.getElementById("test");    test.firstChild.nodeValue = "我同意"+counts;    if(counts-- == "0"){        test.firstChild.nodeValue = "我同意";        test.disabled = false;        clearInterval(counting);    }}</script>
      <button id="test">我同意</button>
      <button onclick="countDown()">开始计时</button>
    第二次点"开始计时", 却出现了问题,秒针变成了负数的,不知道怎么回事,
      

  4.   


    <script type="text/javascript">
        var counts = 10;
        var counting;
        function countDown() {
            var test = document.getElementById("test");
            test.disabled = true;
            counting = setInterval("countOne();
    ", 1000)
        }
        function countOne() {
            var test = document.getElementById("test");
            test.firstChild.nodeValue = "我同意" + counts;
            if (counts--=="0") {
                test.firstChild.nodeValue = "我同意";
                test.disabled = false;
                clearInterval(counting);
            }
        }
    </script>
    <button id="test">
        我同意
    </button>
    <button onclick="countDown()">
        开始计时
    </button>第二次点"开始计时", 却出现了问题,秒针变成了负数的,不知道怎么回事,
      

  5.   


    每次点击的时候,应该是重新 赋值counts.  代码用var counts = 10; 不知道对不对
      

  6.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
    </head>
    <body>
    <script type="text/javascript">
        var counts;
        var counting;
        function countDown() {
             counts = 10;
            var test = document.getElementById("test");
            test.disabled = true;
            counting = setInterval("countOne();", 1000);
        }
        function countOne() {
            
            var test = document.getElementById("test");
            test.firstChild.nodeValue = "我同意" + counts;
            if (counts-- == "0") {
                test.firstChild.nodeValue = "我同意";
                test.disabled = false;
                clearInterval(counting);
                
            }    }
          </script>
      <button id="test">我同意</button>
      <button onclick="countDown()">开始计时</button>
    </body>
    </html>
      

  7.   

    第二次点要把已存在的Interval   clear掉
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
    </head>
    <body>
    <script type="text/javascript">
        var counts;
        var counting;
        function countDown() {
         if(counting){
         clearInterval(counting);
         }
             counts = 10;
            var test = document.getElementById("test");
            test.disabled = true;
            counting = setInterval("countOne();", 1000);
        }
        function countOne() {
            
            var test = document.getElementById("test");
            test.firstChild.nodeValue = "我同意" + counts;
            if (counts-- == "0") {
                test.firstChild.nodeValue = "我同意";
                test.disabled = false;
                clearInterval(counting);
                
            }    }
          </script>
      <button id="test">我同意</button>
      <button onclick="countDown()">开始计时</button>
    </body>
    </html>
      

  8.   

    是因为你的代码中 var counts = 10;初始化为10后再没有重新赋值,所以一直再减,可以修改为:
    <script type="text/javascript">
      var counts=10;
      var counting;
      function countDown(){ 
          counts=10;//重新给counts赋值
         var test = document.getElementById("test"); 
             test.disabled = true; 
             counting = setInterval("countOne();",1000)
      }
      function countOne(){
          var test = document.getElementById("test");
          test.firstChild.nodeValue = "我同意"+counts;
          if(counts-- == "0"){
              test.firstChild.nodeValue = "我同意";
              test.disabled = false;
              clearInterval(counting); 
          }
     }
    </script> 
    <button id="test">我同意</button>
    <button onclick="countDown()">开始计时</button>
      

  9.   

    你的代码:
    <script type="text/javascript">
    var counts=10;
    var counting;
    function countDown(){  
      var test = document.getElementById("test");    
      test.disabled = true;    
      counting = setInterval("countOne();",1000)
      }
      function countOne(){    
      var test = document.getElementById("test");   
       test.firstChild.nodeValue = "我同意"+counts;    
       if(counts-- == "0"){        
       test.firstChild.nodeValue = "我同意";        
       test.disabled = false;        
       clearInterval(counting);  
       //这里:当counts-- ==0 时 需
         counts=0;//赋值   }
       }
     </script>