首页 新闻 会员 周边

关于JavaScript定时问题

0
悬赏园豆:30 [已解决问题] 解决于 2015-10-19 23:34

点击页面上的“开始”按钮,每过5秒钟弹出对话框显示“你好!”,点击页面上的“结束”按钮后,不再弹出。我想问下我下面这个代码哪里错了,按结束还是会弹出对话框

<html>
<head>
<script>

setInterval(show,5000);
var a; 
var cf =setInterval(show,5000);
function show() 
{
alert("欢迎你的访问");
}
if (a=document.getElementById('af'))
{
clearInterval(cf);
}

</script>
<body> 
<button onclick=show()>开始</button>
<button onclick=clearInterva() id="af">结束</button>
</body>
</html>
hoofin的主页 hoofin | 初学一级 | 园豆:4
提问于:2015-10-15 23:00
< >
分享
最佳答案
0
<html>
<head>
    <script>
    var timeclock = (function() {

            var cf;
            function show() {
                if (!cf) {
                    cf = setInterval(function () {
                        alert("欢迎你的访问");
                    }, 5000);
                }

            }
            function hide() {
                clearInterval(cf);
                cf = undefined;
            }

            return {
                showhandler: show,
                hidehandler:hide
            }

        })();

    </script>
    <body>
        <button onclick=timeclock.showhandler()>开始</button>
        <button onclick=timeclock.hidehandler() id="af">结束</button>
    </body>
</html>
收获园豆:10
堡主大名花花 | 菜鸟二级 |园豆:229 | 2015-10-17 18:06
其他回答(4)
0

setInterval调用函数时,我记得得加引号转成字符串,setInterval("show()",5000);否则只会调用一次

之奇一昂 | 园豆:1421 (小虾三级) | 2015-10-16 06:37
0

 

<button onclick=start()>开始</button>
<button onclick=stop() id="af">结束</button>


<script type="text/javascript">
    var cf;
    function start() {
        if (cf == null) //防止连续点击开始按钮.
            cf = setInterval(show, 5000);
    }
    function show() {
        alert("欢迎你的访问");
    }
    function stop() {
        clearInterval(cf);
        cf = null;
    }
</script>

参考一下吧.. 你的代码有点问题.

 

收获园豆:10
李丶GuanYao | 园豆:1228 (小虾三级) | 2015-10-16 08:18
0

看代码给你改了一下,setInterval你调用了两次,第一个注释了,还有这个if (a=document.getElementById('af'))要放在函数域里面

<html>
<head>
<script>

//setInterval(show,5000);
var a; 
var cf =setInterval(show,5000);
function show() 
{
alert("欢迎你的访问");
}

function clearInterva()

{
   if (a=document.getElementById('af'))
   {
     clearInterval(cf);
   }

}

</script>
<body> 
<button onclick=show()>开始</button>
<button onclick='clearInterva();' id="af">结束</button>
</body>
</html>
qifan | 园豆:237 (菜鸟二级) | 2015-10-16 08:49
0
<html>
  <head>
    <meta charset="utf-8">
    <script>
      //定义show方法
      function show(){ 
        alert("欢迎你的访问");
      }

      //设置interval
      var cf;
      function start(){
        cf = setInterval(function(){
          show()
        }, 5000);
        //或者是
        //cf = setInterval('show', 5000);
      }
      function stop(){
        cf && clearInterval(cf);
      }
    </script>
  </head>
  <body> 
    <button onclick="start()">开始</button>
    <button onclick="stop()" id="af">结束</button>
  </body>
</html>

给你一个建议:一开始就要注意排版和HTML标签的格式。

收获园豆:10
幻天芒 | 园豆:37175 (高人七级) | 2015-10-16 08:59

恩 大神 我们是一个地区的也。。。。

支持(0) 反对(0) hoofin | 园豆:4 (初学一级) | 2015-10-17 14:37

@hoofin: 我混成都。。

支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2015-10-17 18:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册