* 2008年07月的日志

慎用keyup事件

手册上对onkeydown的描述为“Fires when the user presses a key”,onkeyup的描述为“Fires when the user releases a key”,onkeypress的描述为”Fires when the user presses an alphanumeric key”,一个是键盘按键按下时触发,一个是按键弹起时触发,另一个是按下键盘的数字、字符键触发。为什么说要慎用keyup呢?

设想有这么一种情况,在web页面上有一个模拟的弹出窗口,很流行的那种,然后我们监听keyup事件,如果发现keyCode等于27,也就是说用户按了ESC键的时候隐藏窗口,这样能方便一部分高级用户,Google文档也这么做。但是如果弹出窗口中有一个输入框,情况就不那么妙了。因为我们通常用的输入法都有一个候选词的浮动窗口,有时候打错字了需要关闭这个浮动框口也会用到ESC,这个时候你会发现一旦按下ESC,输入法的候选词窗口连同那个弹出层一起消失了。

Continue Reading »