2012-09-11 74 views
0

如何修改下面的代碼,以便在進度條完成加載併到達結尾時,可以執行一個單獨的函數(即test()),而不是像它一樣重複和重複就是現在。進度條保持重複

<html> 
    <head> 
     <script type="text/javascript"> 
     var prg_width = 200; 

     function progress() { 
      var node = document.getElementById('progress'); 
      var w = node.style.width.match(/\d+/); 

      if (w == prg_width) { 
       w = 0; 
      } 

      node.style.width = parseInt(w) + 5 + 'px'; 
     } 

     </script> 
    </head> 

    <body onload="var progress_run_id = setInterval(progress, 30);"> 

     <div style="border: 1px solid #808080; width:200px; height:5px;"> 
      <div id="progress" style="height:5px; width:0px; background-color:#DBDBDB;"/> 
     </div> 

    </body> 
</html> 

非常感謝和感謝您的幫助。

乾杯,

周杰倫

回答

0
<html> 
<head> 
<script type="text/javascript"> 
var prg_width = 200; 
var progress_run_id = null; 

function progress() { 
var node = document.getElementById('progress'); 
    var w = node.style.width.match(/\d+/); 
    if (w == prg_width) { 
     clearInterval(progress_run_id); 
     w = 0; 
    } else { 
     w = parseInt(w) + 5 + 'px';    
    } 
    node.style.width = w; 
} 
function initialize(){ 
    progress_run_id = setInterval(progress, 30); 
} 
window.onload = initialize(); 
</script> 
</head> 
<body> 
     <div style="border: 1px solid #808080; width:200px; height:5px;"> 
     <div id="progress" style="height:5px; width:0px; background-color:#DBDBDB;"/> 
     </div> 
</body> 
</html> 
+0

我寧願保持HTML和Javascript分開,所以我使用window.onload而不是。 –

+0

像魅力一樣工作。沒有錯誤。這個世界上有很多優秀的人。非常感謝!。 –

0
var prg_width = 200; 

     function progress() { 
      var node = document.getElementById('progress'); 
      var w = node.style.width.match(/\d+/); 

      if (w == prg_width) { 
       test(); // CHANGE THIS 
       clearInterval(progress_run_id); 
      } 

      node.style.width = parseInt(w) + 5 + 'px'; 
     } 

來檢查,如果該寬度等於完成的寬度。如果是,則清除間隔,並致電test函數。

1

調用此單獨的函數,而不是

w = 0;

線。別忘了clearInterval(progress_run_id)

0
<script type="text/javascript"> 
     var prg_width = 200; 

     function progress() { 
      var node = document.getElementById('progress'); 
      var w = node.style.width.match(/\d+/); 

      if (w == prg_width) { 
       test(); 
       clearInterval(progress_run_id); 
      } 

      node.style.width = parseInt(w) + 5 + 'px'; 

     } 

     </script> 
+0

感謝....這個工作非常愉快,但後來它完成後,執行測試()我得到一個錯誤說progress_run_id是不確定的?有任何想法嗎? –