Web前端Web前端之路程序员

setTimeout(fn,0)的作用

2016-03-31  本文已影响647人  小睿7777777

hi,朋友们你见到过window.setTimeout(fn, 0)的代码吗?那该语句是什么作用呢?答:延时函数fn的执行(ps 也就是把fn放入事件循环队列,队列是后进后出哟)。那在什么场合下需要延时执行函数fn且时延参数为呢?

栗子:

<input type="text" onkeydown = "document.getElementById('a').innerHTML = 'input is:'+this.value;" />

<div id="a">input is:</div>

运行结果如下图:

为什么输入123,输出的结果是12呢?

因为输入3时所触发的事件级联中,keydown事件的顺序先于给input对象value属性赋值的默认事件,所以输出结果慢了一拍。

针对此问题,解决方案为把onkeydown属性值改为onkeydown="setTimeout(function(){document.getElementById('a').innerHTML= 'input is:'+this.value;},0)"即延迟keydown事件执行。

上一篇下一篇

猜你喜欢

热点阅读