keydown и keyup не видят обычных буквенных клавиш
здравствуйте, такая проблемка...
данный код работает как надо: document.getElementById('area').addEventListener('keydown', function (e) { if (e.ctrlKey) alert('event fired'); }); но стоит проверить ещё и какую-то другую клавишу, нничего не срабатывает: document.getElementById('area').addEventListener('keydown', function (e) { var keyCode = e.keyCode || e.which; if (e.ctrlKey && keyCode == 98) alert('event fired'); }); подскажите пожалуйста в чём проблема |
Tecvid,
надо собирать коллекцию нажатых клавиш http://javascript.ru/forum/events/26...tml#post163776 |
рони,
благодарю, рабоает) но не знаю как туда вписать клавишу ктрл |
Tecvid,
if ( keys.length === args.length && e.ctrlKey) |
всё отлично, но появилась другая проблема :D :/
мне надо бло запретить ctrl+<оперделённые клавиши>, с алертом всё работает, а вот с перевендефолт нет, куда бы его не вписал |
Tecvid,
if ( keys.join() === args.join()) e.preventDefault(); |
спасибо, но не получается, я всего лишь хочу запретить ctrl+b, ctrl+i и ctrl+i
|
Tecvid,
а так ? <!DOCTYPE HTML> <html> <head> <title>Untitled</title> </head> <body> <p></p> <script> function runOnKeys(codes) { var pressed = {}; document.addEventListener('keydown', function(e) { e = e || window.event; pressed[e.keyCode] = true; for (var i = 0; i < codes.length; i++) { if (!pressed[codes[i]]||!e.ctrlKey) { return; } } pressed = {}; e.preventDefault(); },false); document.addEventListener('keyup', function(e) { e = e || window.event; delete pressed[e.keyCode]; },false); } runOnKeys( ["B".charCodeAt(0)] ); runOnKeys( ["I".charCodeAt(0)] ); </script> </body> </html> |
рони,
так уже получилось, благодарю! :) |
оказывается и мой вариант работал, просто надо было в качестве кода указать другие цифры, а не те что в таблице кодов
document.getElementById('area').addEventListener('keydown', function (e) { var keyCode = e.keyCode || e.which; if (e.ctrlKey && (keyCode == 66 || keyCode == 73 || keyCode == 85)) e.preventDefault(); }); |
Часовой пояс GMT +3, время: 14:21. |