点击页面上的“开始”按钮,每过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>
<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>
setInterval调用函数时,我记得得加引号转成字符串,setInterval("show()",5000);否则只会调用一次
<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>
参考一下吧.. 你的代码有点问题.
看代码给你改了一下,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>
<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标签的格式。
恩 大神 我们是一个地区的也。。。。
@hoofin: 我混成都。。