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, время: 08:01. |