1、keypress 、keydown、keyup的区别
keypress表示键盘按下的全过程,只有按下任意字母数字键(后退、删除等系统功能键无效)时才触发,捕获到的keyCode区分大小写
keydown表示键盘按下但还没弹起之前触发,即前半段触发,按下任意键盘键均可触发,捕获到的keyCode不区分大小写
keyup表示键盘按下后弹起的过程中触发,即后半段触发,按下任意键盘键均可触发,捕获到的keyCode不区分大小写
事件的触发顺序 keydown -> keypress -> keyup
2、兼容性
ie6下onkeypress接受回车事件,keydown不接受
ie8下onkeypress不接受回车事件,onkeydown会接受
firefox中的onkeypress与onkeydown都接受回车事件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>回车触发事件</title> </head> <body> <input id="inputBox" onkeydown="enterPress()" onkeydown="enterPress(event)"/> <script> function enterPress(){ var e = event || window.event; if(e.keyCode==13){ console.log("触发回车") } } </script> </body> </html>
在html中同时用到了keypress与keydown,由于fireFox均接受回车事件,为了使其只运行一次,则任意的一个事件内传入event,另一个不传参数,fireFox就会只执行一次