开发者问题收集

每 1 秒显示和隐藏一个 div

2015-06-19
73

嗨,我想显示一个 div 并隐藏 1s 并循环此代码:

<div>Flashing</div>

    <script>
        $(document).ready(function(){
        hide();

        function show(){
          setTimeout(function(){
            $('div').show();
          }, 2000);
          hide();
        }

        function hide(){
          setTimeout(function(){
            $('div').hide();
          }, 2000);
          show();
        }
      });
    </script>

但是浏览器给我一个错误: 错误:

Uncaught RangeError: Maximum call stack size exceeded

3个回答

最好使用 jquery/ 的 .toggle() 方法

setInterval(function(){
        $('div').toggle();
      }, 1000);
Varun
2015-06-19

您的显示和隐藏函数调用不在函数的异步部分,导致无限循环。将您的调用放在计时器事件内:

  $(document).ready(function(){
    hide();

    function show(){
      setTimeout(function(){
        $('div').show();
        hide();
      }, 2000);
    }

    function hide(){
      setTimeout(function(){
        $('div').hide();
        show();
      }, 2000);
    }
  });
Karl-André Gagnon
2015-06-19

尝试一下

 $(document).ready(function(){

    function toggleDiv() {
        $('div').toggle();
        setTimeout(function(){toggleDiv();}, 1000);
    }

    toggleDiv();

});
Nikhil Aggarwal
2015-06-19