/ / jQuery библиотека за натискане на клавиатурен клавиш от код - jquery, натискане на клавиш

jQuery библиотека за получаване на клавиатурата натиснат от кода - jquery, натискане на клавиш

Аз имам някои проблеми с моята функцияпревръща клавиатурните кодове в клавишни клавиши. Първоначално имах гигантски оператор за превключване и ако кодът беше, да речем, 37, програмата ми ще изведе "клавиш със стрелка вляво". Проблемът ми е, че различните браузъри не задействат определени клавиши и понякога кодовете се смесват. Например, Shift + 7 на mac, работещ с Chrome, извежда код 37, който е натискане на клавиш вляво. Firefox на mac не ми казва дали е натиснат клавиша на раздела и т.н.

Ето кода, с който работех:

    function getKey(code) {

var keyPress;

// In case of special keys

switch (code)
{
case 8:
keyPress = " backspace ";
break;
case 9:
keyPress = " tab ";
break;
case 13:
keyPress = " enter ";
break;
case 16:
keyPress = " shift ";
break;
case 17:
keyPress = " control ";
break;
case 18:
keyPress = " alt ";
break;
case 20:
keyPress = " caps lock ";
break;
case 27:
keyPress = " escape ";
break;
case 46:
keyPress = " delete ";
break;
case 37:
keyPress = " left arrow key ";
break;
case 38:
keyPress = " up arrow key ";
break;
case 39:
keyPress = " right arrow key ";
break;
case 40:
keyPress = " down arrow key ";
break;
case 45:
keyPress = " insert ";
break;
case 46:
keyPress = " delete ";
break;
case 91:
keyPress = " command ";
break;
default:
keyPress = String.fromCharCode(code);
}

return keyPress;

}

$(document).keypress(function(e) {

var code = e.which;

var keyPress = String.fromCharCode(code);

$(".keystrokes").append(keyPress);

});

И така, има ли библиотеки за jquery, които могат точно да ми дадат правилно натиснатия клавиш?

Отговори:

0 за отговор № 1

Не знам за библиотека, която прави това, което искате, но превключвателят ще работи с правилните данни.

keypress () връща действителния текст. keyup () връща ключовия код. Ще трябва да разгледате събитието, където да получите ключа, event.shiftKey, event.metaKey, event.ctrlKey, за да получите модификаторите.

от http://api.jquery.com/keyup/

За да определите кой клавиш е натиснат, разгледайтеобект на събитие, който се предава на функцията за обработка. Докато браузърите използват различни свойства за съхраняване на тази информация, jQuery нормализира свойството .which, така че можете надеждно да го използвате за извличане на ключовия код. Този код съответства на клавиш на клавиатурата, включително кодове за специални клавиши, като стрелки. За улавяне на реално въвеждане на текст .keypress () може да бъде по-добър избор.


0 за отговор № 2

Търсите jQuery ++ „s event.key разширение: http://jquerypp.com/#key

Можете просто да харесате следното:

$( <query> ).on("keypress", function(ev){
// Backspace
if(ev.keyName() == "b") {
...
}
);
  • Клавиш Tab: t
  • Въведете ключ: r
  • Клавиш Shift: shift

Вижте коментирания източник за повече: http://jquerypp.com/release/latest/docs/key.html