JavaScript事件处理程序 race

问题描述 投票:0回答:2

如果我的文本字段有一个注册的 onblur 事件处理程序和一个带有注册的 onmouseup 事件处理程序,这两个函数中哪一个会更快运行,为什么?

为了使我的问题更清楚,让我们假设当前焦点在文本字段上,我想点击按钮。

不同的互联网浏览器之间会有什么区别吗?

编辑

尤其是棘手的似乎 onmousedown 事件,而文本字段在注册按钮时有一个 onblur 事件注册的。

javascript button textfield onblur onmouseup
2个回答
2
投票

规范说 blur 必须在焦点离开元素时(在移走焦点后)被触发,但我没有看到任何明确的声明,说明相对于导致焦点被移走的事件,何时必须发生。

当然 mouseup 将会发生在很晚的时候(在计算机方面),因为首先你必须要有 mousedown.

我本以为 blur 乃至于在发射前 mousedown但我就错了。根据... 实验, mouseup 是后,但 mousedown 是之前。我使用Chrome 26、Opera 12.15、Firefox 20、IE8和IE9进行了测试--如果你能让这五种浏览器在行为上达成一致,那么在其他浏览器中很可能是一致的...:-) 我的怀疑是,这是因为如果你阻止了缺省的 mousedown焦点永远不会从文本字段上移开。例子. (这种行为在各家公司都是一致的。四个 这五款浏览器中,IE8并没有阻止焦点的变化--这意味着IE7和6可能也没有)。) 因此,虽然这看起来很奇怪,但确实有点道理。

和以往一样,用你打算支持的浏览器进行测试。


-1
投票

只要在启动时保存时间戳

var start = new Date().getTime();

然后

var elapsed = new Date().getTime() - start;

到处理程序中。

© www.soinside.com 2019 - 2024. All rights reserved.