当前位置: 代码迷 >> Web前端 >> 取得焦点 forcus setTimeout(fn,0) 作用
  详细解决方案

取得焦点 forcus setTimeout(fn,0) 作用

热度:980   发布时间:2012-11-22 00:16:41.0
获得焦点 forcus setTimeout(fn,0) 作用
javascript是单线程执行的,事件驱动的,可以想象为有一个后台调用队列。

所以setTimeout(fn,0)当时不会执行,只是将fn添加到后台等待运行队列。只有当前代码跑完之后。再执行。

console.log(1);
setTimeout(function(){console.log(2);},0);
console.log(3);


运行得到132。

应用场景:
用户点击一个元素,让令一个输入框获得焦点。
$('p').mousedown(function(){setTimeout(function(){$(":text").focus();},0);});


当然这种情况还可以使用label 的for 属性

<label for="name">name:</label><input type="text" id="name"/>