keyup、keydown、keypress 和 input 事件之间有什么区别?
What's the difference between keyup, keydown, keypress and input events?
我一直在努力理解 jQuery keypress
、keydown
、keyup
和 input 事件。但我发现它们很混乱。有人可以指出确切的区别吗?另外我想知道当用户粘贴一段文本时是否所有这些都会被触发。
根据jQuery docs:
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.
The keyup event is sent to an element when the user releases a key on the keyboard.
The oninput event it's an event that triggers whenever the input changes.
但是IE 9以下版本不支持input事件,这种情况下,可以使用专有事件onpropertychange,作用和oninput一样。
但在您的情况下,您可以同时使用 paste 和 change 事件。你也应该使用 change 因为 paste 只发生在支持显式粘贴的浏览器上。
我一直在努力理解 jQuery keypress
、keydown
、keyup
和 input 事件。但我发现它们很混乱。有人可以指出确切的区别吗?另外我想知道当用户粘贴一段文本时是否所有这些都会被触发。
根据jQuery docs:
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.
The keyup event is sent to an element when the user releases a key on the keyboard.
The oninput event it's an event that triggers whenever the input changes.
但是IE 9以下版本不支持input事件,这种情况下,可以使用专有事件onpropertychange,作用和oninput一样。
但在您的情况下,您可以同时使用 paste 和 change 事件。你也应该使用 change 因为 paste 只发生在支持显式粘贴的浏览器上。