onblur vs onclick计时

时间:2014-04-04 15:32:37

标签: javascript event-handling

textarea事件发生在同一div时,会有一个onblur元素将自身转换为textarea。还有一个button,其onclick属性设置为function f

如果有人在textarea中写信,然后点击button,则会触发f,但也会触发onblur事件处理程序。在这种情况下是否有一些订单规则,或者两个处理函数可能以随机顺序触发?

2 个答案:

答案 0 :(得分:6)

我在这里创建了一个jsfiddle:http://jsfiddle.net/z5SEp/

最新Chrome的事件似乎是:

mousedown
blur
mouseup
click 

虽然我找不到任何依赖的文档,但是在mousedown之后,但在mouseup之前,模糊是有意义的。 Mousedown会导致模糊,但您可能会长时间按下鼠标按钮并导致模糊。

点击事件的顺序始终是1. mousedown 2. mouseup 3. click。在mousedown之后但在mouseup之前,模糊是有意义的。


要记住更多内容

如果触发按钮点击如下:$('button').trigger('click');,则模糊事件将触发,焦点将保留在textarea上。

答案 1 :(得分:0)

在这种情况下,模糊将始终首先触发,因为只要鼠标按钮在页面上的其他位置下降,就会触发模糊。因此,当鼠标按下按钮时,首先会触发textarea的模糊事件。当鼠标出现时,按钮的click事件被触发。