keyup,keydown,keypress和input事件之间有什么区别? [英] What's the difference between keyup, keydown, keypress and input events?

查看:306
本文介绍了keyup,keydown,keypress和input事件之间有什么区别?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在尝试了解jQuery keypress,keydown,keyup和 input 事件。但我发现它们很混乱。有人可以指出确切的区别吗?此外,我想知道当用户粘贴一段文本时,所有这些都会被触发。

谢谢

I have been trying to understand jQuery keypress, keydown, keyup and input events. But I found them quite confusing. Could someone please point out the exact differences ? Also I would like to know do all of them get triggered when the user paste a piece of text .
Thanks

推荐答案

根据 jQuery docs


当浏览器注册键盘输入时, keypress 事件将发送到元素。这类似于 keydown 事件,除了修饰符和非打印键(如Shift,Esc和delete)触发keydown事件,但不触发keypress事件。根据平台和浏览器,可能会出现两个事件之间的其他差异。

The keypress event is sent to an element when the browser registers keyboard input. This is similar to the keydown event, except that modifier and non-printing keys such as Shift, Esc, and delete trigger keydown events but not keypress events. Other differences between the two events may arise depending on platform and browser.

当用户释放密钥时, keyup 事件将发送到元素在键盘上。

The keyup event is sent to an element when the user releases a key on the keyboard.

oninput 事件,只要输入发生变化,就会触发该事件。

The oninput event it's an event that triggers whenever the input changes.

然而,在9以下的IE版本中不支持输入事件。在这种情况下,您可以使用专有事件onpropertychange,它与oninput相同。

However the input event is not supported in IE version below 9. In that case, you could use proprietary event onpropertychange, it does the same as oninput.

但在您的情况下,您可以同时使用粘贴更改事件。您也应该使用更改,因为粘贴仅在支持明确粘贴的浏览器上发生。

But in your case, you could use the paste and change event together. You should use change too because paste only happens on browsers that support it on an explicit paste.

这篇关于keyup,keydown,keypress和input事件之间有什么区别?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆