首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

实施10次停止执行

2012-08-11 
执行10次停止执行PHP codescript typetext/javascriptfunction dao(timeDao){var shnulldivD.inner

执行10次停止执行

PHP code
<script type="text/javascript">function dao(timeDao){    var sh=null;    divD.innerText=timeDao;    if(timeDao==0)    {    clearInterval(sh1);    return;    sh=1;    }    timeDao--;    if(sh==null){    sh1=setInterval("dao("+timeDao+")",100);    }}</script><div id="divD" onclick="dao(10,null)">执行10次</div>


写了一个js代码,如上面的代码

想达到效果:每次点击<div id="divD" onclick="dao(10,null)">执行10次</div>[/code]
页面都能自动依次显示:10,9,8,7,6,5,4,3,2,1,0


可我代码好像有问题,显示到10,9.。。。。0,都没有问题
问题1:页面到0的时候不停止,继续乱跳,什么原因?
问题2:怎么显示每次点击都会自动再执行一次10,9,8,7.。。。1,0
 

[解决办法]
请把setInterval放在函数外面
[解决办法]
将setInterval和clearInterval改为setTimeout和clearTimeout即可,楼上的说法也可以。
[解决办法]
楼主的逻辑好像有点问题。。我这样写可以实现
HTML code
<div id="divD" onclick="dao.start(10)">执行10次</div>
[解决办法]
楼主,其实没有那么的复杂,给你个简单的:
HTML code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cn"><head>    <meta http-equiv="Content-Type" content="text/html;charset=gb2312" />    <title></title></head><body><script type="text/javascript">function dao(timeDao){    document.getElementById("divD").innerHTML = timeDao;    timeDao--;    if(timeDao >= 0 ){        setTimeout(function(){            dao(timeDao);        }, 1000);    }}</script><div id="divD" onclick="dao(10)">执行10次</div>        </body></html>
[解决办法]
HTML code
    <div id="divD" onclick="dao(10,this)">执行10次</div>    <script type="text/javascript">        function dao(timeDao, elem)        {            var timer = setInterval(function(){                if(timeDao >= 0){                    elem.innerHTML = timeDao;                    timeDao--;                }else{                    clearInterval(timer);                }            }, 100);        }    </script> 

热点排行