嵌套代码,结果无法运行,请大家看看什么原因?

来源:8-4 取消计时器clearInterval()

黑羊sparrow

2015-03-05 22:16

我的这个代码 为什么不能正常运行,麻烦看下问题出在哪里?

写回答 关注

3回答

  • 西地锦
    2015-03-06 10:58:45
    已采纳

    问题稍微有点多。我一步一步的说:

    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);
    }


    黑羊spar...

    非常感谢!

    2015-03-06 15:27:56

    共 1 条回复 >

  • 黑羊sparrow
    2015-03-06 15:26:54

    非常感谢,刚学习JavaScript很多函数的特性掌握的都不是很熟悉,向高手致敬~~

  • 黑羊sparrow
    2015-03-05 22:40:08
    <!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进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468276 学习 · 21892 问题

查看课程

相似问题