为了账号安全,请及时绑定邮箱和手机立即绑定

请问老师可以直接调用一个调用其自身的函数吗?

<!DOCTYPE html>
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>   
  <title>浏览器对象</title>  
 </head>
 <body>
 <script type="text/javascript">  
    ctime();
    var num=5;
    function ctime()
    {
        document.getElementById("b").innerHTML=num;
        num=num-1;
        setTimeout("ctime()",1000);
        if(num==0)
        {
    	    window.location.href="http://www.imooc.com"
        }
    }
 </script> 
    <span id="b">5</span>秒后回到主页 <a href=javascript:window.history.back()>返回</a>  
</body>
</html>

打开界面后,时间不会变,也不会有任何动作,但是使用一个按键来调用函数时,时间就会改变

正在回答

2 回答

啊,我那时好像看漏了没仔细看,不好意思。你错的地方应该是函数ctine里document.getElementById("b").innerHTML=num;这句,因为如果你在script里使用ctime();调用的话因为它下面的span还没加载,所以得不到对象,出现错误。两种解决方法:

第一加上window.onload = function(){}调用

    var num=5;

    function ctime()

    {

        document.getElementById("b").innerHTML=num;

        num=num-1;

        if(num==0)

        {

            window.location.href="http://www.imooc.com"

        }

        setTimeout("ctime()",1000); 

    }

    window.onload= function(){

        ctime();

    }

第二把span放前面

 <span id="b">5</span>秒后回到主页 <a href=javascript:window.history.back()>返回</a>  

 <script type="text/javascript">  

    var num=5;

    function ctime()

    {

        document.getElementById("b").innerHTML=num;

        num=num-1;

        if(num==0)

        {

            window.location.href="http://www.imooc.com"

        }

        setTimeout("ctime()",1000); 

    }

        ctime();

 </script> 


0 回复 有任何疑惑可以回复我~
#1

慕粉3736843 提问者

非常感谢!
2016-08-06 回复 有任何疑惑可以回复我~

你没调用函数,函数不执行,当然什么都不会发生。你现在只是做了声明而已,ctime();才是调用,在这里可以用setInterval()来调用

0 回复 有任何疑惑可以回复我~
#1

慕粉3736843 提问者

我在函数里使用setTimeout()来调用自身函数,我有使用ctime();调用函数,可就是不执行,望大神指教,谢谢
2016-08-06 回复 有任何疑惑可以回复我~
#2

水里有条鱼 回复 慕粉3736843 提问者

回复字数不超过300字,我在下面再答一遍哈
2016-08-06 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请问老师可以直接调用一个调用其自身的函数吗?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信