如果我的文本字段有一个注册的 onblur
事件处理程序和一个带有注册的 onmouseup
事件处理程序,这两个函数中哪一个会更快运行,为什么?
为了使我的问题更清楚,让我们假设当前焦点在文本字段上,我想点击按钮。
不同的互联网浏览器之间会有什么区别吗?
编辑
尤其是棘手的似乎 onmousedown
事件,而文本字段在注册按钮时有一个 onblur
事件注册的。
规范说 blur
必须在焦点离开元素时(在移走焦点后)被触发,但我没有看到任何明确的声明,说明相对于导致焦点被移走的事件,何时必须发生。
当然 mouseup
将会发生在很晚的时候(在计算机方面),因为首先你必须要有 mousedown
.
我本以为 blur
乃至于在发射前 mousedown
但我就错了。根据... 实验, mouseup
是后,但 mousedown
是之前。我使用Chrome 26、Opera 12.15、Firefox 20、IE8和IE9进行了测试--如果你能让这五种浏览器在行为上达成一致,那么在其他浏览器中很可能是一致的...:-) 我的怀疑是,这是因为如果你阻止了缺省的 mousedown
焦点永远不会从文本字段上移开。例子. (这种行为在各家公司都是一致的。四个 这五款浏览器中,IE8并没有阻止焦点的变化--这意味着IE7和6可能也没有)。) 因此,虽然这看起来很奇怪,但确实有点道理。
和以往一样,用你打算支持的浏览器进行测试。
只要在启动时保存时间戳
var start = new Date().getTime();
然后
var elapsed = new Date().getTime() - start;
到处理程序中。