【问题标题】:How to set timer on body onload?如何在身体加载时设置计时器?
【发布时间】:2014-02-12 07:17:59
【问题描述】:

我想在 body onload eventHandler 上设置计时器来调用我显示隐藏 div 的函数。

<body onload="">
    <div style="display:none;"> hide </div>
</body>

【问题讨论】:

  • 请多解释一下。
  • @Konza - 我在 onload 函数上设置的时间我想显示我的 div 的时间间隔。

标签: javascript html


【解决方案1】:
  • 为了提高可读性,我将代码放在单独的函数中。
  • 我在div 中添加了一个 ID,以便通过 javascript 进行选择。
  • onload 属性中,我调用setInterval,它获取一个匿名函数作为第一个参数。
  • 每次间隔(1000 毫秒)过去后都会调用此函数。
  • 然后该函数将选择 id 为 theDiv 的元素,并将其 css display 属性设置为 blocknone(取决于之前的值)。

用于演示的 JSFiddle:http://jsfiddle.net/GAE8L/1/

注意setInterval 的第一个参数只是函数名,而不是函数调用(所以没有括号!):

<body onload="setInterval(onTimerElapsed, 1000);">
    <div id="theDiv" style="display:none;">
        hide
    </div>
</body>

<script type="text/javascript">
    function onTimerElapsed() {
        var myDiv = document.getElementById('theDiv');
        myDiv.style.display = myDiv.style.display === 'none' ? 'block' : 'none';
    }
</script>

【讨论】:

  • 我想再次隐藏那个时间间隔。应该是一个不断隐藏的过程。
  • 有什么办法吗?
  • 是的,对不起,我误解了你想要的。我已经更新了 JSFiddle 和答案。
【解决方案2】:

试试这个:

<script src="http://code.jquery.com/jquery-latest.min.js"></script>

<div id="div1" style="display:none;">
hide
</div>

<script>
$(function() {
    setTimeout(function() {
            $('#div1').show();
    }, 1000);
});
</script>

【讨论】:

    【解决方案3】:

    使用jquery,它少..

     函数 foo() {
        // 方法 show 应该被调用。
        $("#idDiv").show();
      }
    
      功能栏(){
        设置超时(foo(),1000)
      }
    
    脚本>
    代码>
     
    
     正文>
    

    【讨论】:

    • 这行不通,您在setTimeout() 行中调用 foo,而不是传递对函数的引用。
    • @UweB - 是的,它不起作用。请建议我如何编写函数?我想在给定的时间间隔内隐藏显示 div。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-15
    • 1970-01-01
    • 2010-10-02
    • 2021-09-22
    • 2011-06-03
    相关资源
    最近更新 更多