setTimeout(fn,0)的作用

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事件执行。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 计时器setTimeout是我们经常会用到的,它用于在指定的毫秒数后调用函数或计算表达式。 语法:setTimeo...
    TGCode阅读 895评论 0 8
  • setInterval(function,milliseconds,param1,param2,...) code...
    你听cmy1994阅读 758评论 0 1
  • 1.JQuery 基础 改变web开发人员创造搞交互性界面的方式。设计者无需花费时间纠缠JS复杂的高级特性。 1....
    LaBaby_阅读 1,394评论 0 2
  • 1.JQuery 基础 改变web开发人员创造搞交互性界面的方式。设计者无需花费时间纠缠JS复杂的高级特性。 1....
    LaBaby_阅读 1,203评论 0 1
  • https://nodejs.org/api/documentation.html 工具模块 Assert 测试 ...
    KeKeMars阅读 6,440评论 0 6