问题来源: http://blog.csdn.net/lsk_jd/article/details/6080772
这是一个关于Settimeout
时间为0时的一些技巧应用,不过看完后觉得有些问题,
里面的例子,如果onmousedown
改为onmouseup
,onkeypress
改为 onkeyup
那文章里说的问题都没有了。不知道这是为啥?onmousedown
的运作方式又是如何的,或者说文章里那个onmousedown
时focus
,select
不执行是因何,说是单线程的问题,但具体是啥。
依云回答的是正确的。而我在上周因为你这个问题,而编写了一篇文章:
JavaScript下的setTimeout(fn,0)意味着什么?
你所读的那篇文章讲解的核心是正确的,但是原作者使用了错误的方法来给你演示:
onmousedown
。你被作者的
onmousedown
给误解了,因为Event onmouseXXX
系列API本身相对其他的事件来说稍显复杂。其中,作者演示了代码
onmousedown
系的代码,在未使用setTimeout的情况下,input.select()
看似没有执行。但真实的情况是:
input.select()
执行了,然后被按钮点击的焦点给覆盖了。原文作者的初衷是好的,但其演示的代码误导了自己和读者,并以此得到了一段并不正确的理论。
至于详细的分析请参阅上面我给出的我的文章。