<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
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
<div id="divD" onclick="dao.start(10)">执行10次</div>
var dao = function (){
var timeObj,
el = document.getElementById("divD"),
num = 0;
function fn(){
if (!num){
clearInterval(timeObj);
}
el.innerHTML = num--;
}
return {
start : function(_num){
num = _num;
timeObj = setInterval(function(){
fn();
},100)
},
stop : function(){
clearInterval(timeObj);
}
}
}()
<div id="divD" onclick="dao.start(10)">执行10次</div>
var dao = function (){
var timeObj,
el = document.getElementById("divD"),
num = 0;
function fn(){
if (!num){
clearInterval(timeObj);
}
el.innerHTML = num--;
}
return {
start : function(_num){
num = _num;
timeObj = setInterval(function(){
fn();
},100)
},
stop : function(){
clearInterval(timeObj);
}
}
}()
num+=1;
while(num-->0){
document.getElementById('div1').innerHTML+=num+",";
};
};
有那么复杂么
<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>
<script type="text/javascript">
function dao(timeDao, elem)
{
var timer = setInterval(function(){
if(timeDao >= 0){
elem.innerHTML = timeDao;
timeDao--;
}else{
clearInterval(timer);
}
}, 100);
}
</script>