函数内部的setInterval不起作用

时间:2018-02-28 21:52:39

标签: javascript html function setinterval

我对任何形式的编码都很陌生,所以请原谅我的无知,但是当我使用var作为第二个函数的间隔时,它将无法正常工作,我已经尽力了不必问,但我的搜索没有结果。请帮忙!

    function click_01() {
    var elem = document.getElementById('trash_02');
    setInterval(frame, 10);
    var width = 0
    function frame(){
       if (width >= 100){
            clearInterval("frame");
            width = 0;
       } else {
            width = width + 1;
            elem.style.width = width + '%';
       }
      }

    }


    click_01();

1 个答案:

答案 0 :(得分:0)

传递函数而不是字符串

只需从功能框架中删除引号和括号即可。如果你传递引号,它将成为字符串,你的代码将无法正常工作。

所以这是你的答案



function click_01() {
      
        var intr=setInterval(frame, 100);//here you passed "frame()" which is string
        
        function frame(){
           let elem=document.getElementById('cls');
           elem.style.width=(parseInt(elem.style.width)+1)+'px';
           elem.innerHTML=parseInt(elem.style.width)+"%";
          
          if(parseInt(elem.style.width)>=100){
          	elem.style.width=0;
          	clearInterval(intr);
            elem.innerHTML='Loading complete';
          }
        }
       } 
        

<div id="cls" style="background-color:red;width:0px">

</div>
  <div><button onclick="click_01()"> click to launch loader</botton> </div> 
&#13;
&#13;
&#13;