嵌套代码,结果无法运行,请大家看看什么原因?
我的这个代码 为什么不能正常运行,麻烦看下问题出在哪里?
2015-03-05
问题稍微有点多。我一步一步的说:
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); }
<!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>
举报