textarea
元素,当同一textarea
上发生onblur
事件时,它会将自身转换为div
。还有一个button
其onclick
属性设置为 function f
。
如果一个人在textarea
中写入,然后单击button
,则触发f
,但也触发onblur
事件处理程序。在这种情况下是否有一些顺序规则,或者两个处理程序函数可能会以随机顺序触发?
我在这里创建了一个jsfiddle:http://jsfiddle.net/z5SEp/
最新Chrome的事件似乎是:
mousedown
blur
mouseup
click
虽然我找不到任何可以依赖的文档,但对我来说,在鼠标按下之后但在鼠标向上之前触发模糊是有意义的。鼠标按下会导致模糊,但您可以将鼠标按钮长时间按住,但仍会导致模糊。
点击事件的顺序将始终为 1。鼠标向下 2. 鼠标向上 3. 点击。在鼠标按下之后但在鼠标向上之前模糊是有意义的。
更多要记住的事情
如果像这样触发按钮单击:$('button').trigger('click');
,则模糊事件将不会触发,焦点将保留在文本区域上。
在这种情况下,模糊将始终首先触发,因为一旦鼠标按钮在页面上的其他位置向下移动,就会触发模糊。因此,当鼠标按下按钮时,首先触发文本区域的模糊事件。当鼠标出现时,将触发按钮的单击事件。