函数内部的 setInterval 不起作用

Ben

我对任何形式的编码都很陌生,所以请原谅我的无知,但是当我在第二个函数的间隔中使用 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();
山峰

传递函数而不是字符串

只需从函数框架中删除引号和括号即可。如果您使用引号传递,它将成为字符串并且您的代码将无法正常工作。

所以这是你的答案

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> 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章