如何限制keydown事件僅在按下某個字符時才生效?我想在鍵盤上按下非字符時跳過代碼,例如主頁按鈕,結束按鈕。將keydown事件僅限於字符
我知道我可以用e.which == someNumber
來定位那些按鈕,但是有沒有更好的方法來做到這一點?爲每個非字符按鈕編寫條件似乎不是一個好主意。
謝謝!
如何限制keydown事件僅在按下某個字符時才生效?我想在鍵盤上按下非字符時跳過代碼,例如主頁按鈕,結束按鈕。將keydown事件僅限於字符
我知道我可以用e.which == someNumber
來定位那些按鈕,但是有沒有更好的方法來做到這一點?爲每個非字符按鈕編寫條件似乎不是一個好主意。
謝謝!
你必須實施某種形式的範圍檢查。選擇佔用最少編碼量的範圍。你會怎樣描述一個角色?它會是32和125之間的一切嗎?在ascii table上查看您感興趣的範圍。
我猜?所以我可能只寫e.which> 31 && e.which <126?但那些不一樣,對吧?我的意思是e.which == 37到40是方向鍵 – dork
該範圍僅僅是一個例子。你從哪裏看到37到40個箭頭鍵? – theoutlander
我剛剛做了一個console.log(e.which)和37到40是什麼時候按下箭頭 – dork
試試這個
$(function() {
$(document).on('keydown', function (event) {
if (event.keyCode == yourkeycode) {
//stuff
}
});
});
如何解決他的問題,如果他還需要檢查個別密鑰?在jquery中的keydown不觸發非ASCII字符? – theoutlander
爲英文字符只或任何字符? Unicode支持?請詳細說明。 – VisioN
@VisioN任何類型的角色,只要它出現在文本框或其他東西。 – dork
我會把所有「授權」的關鍵代碼放在一個javascript數組中,然後在關鍵的測試中,如果e.which在該數組中。要查看數組,你可以參考[這篇文章](http://stackoverflow.com/questions/143847/best-way-to-find-an-item-in-a-javascript-array) –