好的,.keypress和.keydown/.keyup有什麼區別?目前,我正在使用.keydown,它爲我的密鑰返回一個值爲38的值,現在如果我將其更改爲.keypress,它將爲該密鑰返回一個值109。有什麼區別,爲什麼同一個鍵的值不同?jQuery .keypress&.keydown。which
回答
KeyPress發生在KeyDown之後。所以你可以使用KeyDown來確定它的密鑰,然後KeyPress禁止該字符。
你應該閱讀下列職位: http://javascript.info/tutorial/keyboard-events
的keydown觸發任何按鍵,並給出掃描代碼。 Keyyd在keydown後觸發並給出char-code,但只保證字符鍵。
如果你按下一個按鈕,它會觸發一個並釋放它將觸發一個keyup
。 keypress
通常在這兩者之間。
和keyup
談一談關鍵已經改變。 keypress
告訴哪個字符該鍵表示。
請注意,這是所有瀏覽器相關!
請參閱this article about the differences between the key events as implemented on various browsers。
我將是d $%^ @ d,真的和按鍵有所不同,而且這一次我從來沒有意識到。笑
見我的小提琴,並嘗試像字母的東西 「R」
http://jsfiddle.net/SpYk3/NePCm/
不知怎的,我從來沒有注意這個
找到更多的信息:
http://www.quirksmode.org/js/keys.html
「這兩個屬性是
keyCode
和charCode
。簡單地說,keyCode
說的是用戶按下的實際鍵盤按鍵,而charCode
給出了結果字符的ASCII值。這些信息不一定是相同的;例如,小寫'a'和大寫'A'具有相同的keyCode
,因爲用戶按下相同的密鑰,但是不同的charCode
,因爲結果字符不同。Explorer和Opera 不要支持
charCode
。但是,他們在keyCode
中給出了字符信息,但只有onkeypress
。onkeydown
和-up
keyCode
包含關鍵信息。「
是的,所以這就是爲什麼我對此感到困惑? – ChrisMJ 2012-04-17 14:26:25
以及jbl在他的回答中指出,[這個頁面](http://javascript.info/tutorial/keyboard-events)只是稍微描述了這個問題,但它似乎還沒有回答整個問題。也許我錯誤地閱讀了頁面,但是在某一點上它仍然指出charcode被拉到兩個頁面,只是一個會產生不同的值。也許在一些老版本的js文檔中找到答案。我現在看,也將重新我的對象,包括按鍵差異 – SpYk3HH 2012-04-17 15:06:50
雖然我會建議避免按鍵,因爲它不會像可預測的事件作爲keydown和keyup – SpYk3HH 2012-04-17 15:08:16
在正常情況下,去keyup
:
$(document).keyup(function(e){
console.log(e.which);
});
原因:
- 保持當用戶拿着鑰匙向下射擊,而
keypress
和keyup
火一次 。
keypress
未檢測到特殊鍵(例如SHIFT
),和keyup
呢。
- 1. JQuery Keydown,Keypress,Keycode等
- 2. jQuery - keydown/keypress/keyup ENTERKEY檢測?
- 3. KeyPress和KeyDown事件
- 4. KeyDown/KeyPress和索引
- 5. jquery keypress,keyup和keydown實時驗證
- 6. jQuery keypress/keydown無法正常工作
- 7. 在keydown/keypress後得到輸入值
- 8. Keypress和Keydown生成不同的行爲
- 9. Excel加載項KeyPress/KeyDown實現(Visual Basic)
- 10. 在C#中處理KeyDown和KeyPress事件#
- 11. jQuery中的更改順序/ keydown/keypress事件
- 12. Jquery .keyup .keydown .keypress不檢測瀏覽器自動填充
- 13. jquery on keypress
- 14. Iframe,jquery keypress
- 15. jquery create keypress event
- 16. 如何在X秒內禁用keydown/keyup/keypress功能?
- 17. 使用Javascript更改keydown/keypress事件的目標元素
- 18. JQuery Esc Keypress綁定
- 19. KeyPress上的JQuery SlideDown
- 20. jquery text box keypress event
- 21. iOS 8第三方鍵盤不會註冊javascript/jQuery keyup,keypress,keydown等
- 22. 如何解釋JavaScript表達式的[which]:部分({[which]:o [which]} = bar());
- 23. jQuery keydown事件
- 24. Jquery keydown函數
- 25. 爲什麼KeyPress的消息框在KeyDown之前顯示?
- 26. 如何在asp.net中處理KeyPress或KeyDown事件?
- 27. 在keypress或keydown上獲取插入的字符<textarea>
- 28. 在jqGrid中獲取KeyPress/KeyDown的列名/索引
- 29. 無法使用.keyup,.keydown實現的解決方案,.keypress
- 30. Keyup/Keydown/Keypress事件在Internet Explorer 11中未觸發
您正在使用哪種瀏覽器? – Mathletics 2012-04-17 12:56:10
不同的瀏覽器應該導致不同的事件,但不是不同的鍵盤命令 – SpYk3HH 2012-04-17 12:56:40
我有一個json對象,每個鍵盤事件都被瀏覽器分開,我會用三個按鍵真正快速地發佈它,我們可以測試這個,10分鐘的噱頭 – SpYk3HH 2012-04-17 12:57:30