黑羊sparrow
2015-03-05 22:16
我的这个代码 为什么不能正常运行,麻烦看下问题出在哪里?
问题稍微有点多。我一步一步的说:
var i=setInterval("clock()",100);这里的clock()函数是在st()函数的内部创建的,在st()的外面访问不了,所以当然调用不成功。我是不知道你为什么要这样创建啦...... 不过你依然可以这样创建使clock()能被外部环境访问,只要将clock() return 就行了:
function st(){
function clock(){
var time=new Date();
document.getElementById("clock").value = time;
}
return clock();
}这样的话时间能够自动变化运行了,stop也可以行得通,但是start可就不行了,start只能点一下时间变化一下,可能不是你想要的效果。
附上修改过的完整代码
var timer ;
function st(){
function clock(){
var time=new Date();
document.getElementById("clock").value = time;
console.log(time);
}
return clock();
}
function start(){
timer = setInterval(st,1000);
}
function stop(){
clearInterval(timer);
}
非常感谢,刚学习JavaScript很多函数的特性掌握的都不是很熟悉,向高手致敬~~
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>计时器</title>
<script type="text/javascript">
var i=setInterval("clock()",100);
function st(){
function clock(){
var time=new Date();
document.getElementById("clock").value = time;
}}
}
</script>
</head>
<body>
<form>
<input type="text" id="clock" size="50" />
<input type="button" value="Start" onclick="st()" />
<input type="button" value="Stop" onclick="clearInterval(i)" />
</form>
</body>
</html>JavaScript进阶篇
469057 学习 · 22582 问题
相似问题