问答详情
源自:8-6 取消计时器clearTimeout()

搞不懂咯,定时器的问题。

function jianjie()

{

var ms=document.getElementsByTagName('span');

var obtn=document.getElementsByTagName('input');

var i=0;

    for (var i = 0; i < obtn.length; i++)

{

        obtn[i].index = i;

        obtn[i].onclick= function () 

{

          ms[this.index].style.display = 'block';

        }

obtn[i].onmouseout=function ()

{

setTimeout(function () 

{

ms[this.index].style.display = 'none';

},1000);

}

}

}

人家单个块对应控制另一个块的延迟隐藏与显示都是没问题的。但是用在数组上面就不行了(是不是setTime只能运行一次的问题啊)。后来没办法,setTime被我写成setTimeout(obtn[this.index].onmouseout=function () 这个样子,还是能运行。这种写法算什么!!!

提问者:慕粉4203582 2016-10-31 17:26

个回答

  • 慕神4767727
    2016-11-01 12:40:22
    已采纳

    settimeout只有第一次有效果,一次性的。后面就会混乱时间加快了。

  • 慕粉4203582
    2016-11-02 08:49:02

    这个问题已经有人回答了,慕课网系统延迟,发出的问题找不到,所以发了两遍。链接是:http://www.imooc.com/qadetail/177963