Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   как сделать событие клавиатуры? (https://javascript.ru/forum/misc/37269-kak-sdelat-sobytie-klaviatury.html)

macdack 13.04.2013 15:06

как сделать событие клавиатуры?
 
комрады, чота весьма туплю и не могу по учебнику понять как сделать

нужно чтобы при нажатии определенной клавиши, например esc, программа делала некоторые свои действия

то есть нет никаких кнопок и форм - горячая клавиша запускает некую подпрограмму

спс

SkyLight 13.04.2013 16:09

http://learn.javascript.ru/keyboard-events

macdack 13.04.2013 16:16

Цитата:

Сообщение от SkyLight (Сообщение 245984)

да, вот по этому учебнику и не могу понять как, и фленаган не научил ((

я тупой!:cray:

Ervin 13.04.2013 16:27

function handleKey(evt) {
   console.log(evt.keyCode || evt.which);
}

window.onkeydown = handleKey;

macdack 13.04.2013 16:53

Цитата:

Сообщение от Ervin (Сообщение 245988)
function handleKey(evt) {
   console.log(evt.keyCode || evt.which);
}

window.onkeydown = handleKey;

я же специально упомянул что я тупой ))
я не понимаю как это работает - ПОЧЕМУ ВМЕСТО EVENT - EVT ?
и в вопросе моем была клавиша esc

SkyLight 13.04.2013 20:35

Вам никто не даст готовое решение. А вопросы вы не задаете

macdack 14.04.2013 10:47

практически разобрался но есть вопросы

var ч = function(event) {
if (event.keyCode == 18) {alert("esc")}
};
window.onkeydown = ч;


не понимаю почему не работает когда написано в таком порядке -
window.onkeydown = ч; 

var ч = function(event) {
if (event.keyCode == 18) {alert("esc")}
};


и что такое это объект вызова event - где он лежит?
не атрибут ли window - window.event ?
обязательно ли его передавать в качестве аргумента функции обработчика ? или можно из этой функции к нему обратиться ?

SkyLight 14.04.2013 10:56

Цитата:

Сообщение от macdack
не понимаю почему не работает когда написано в таком порядке

Учите порядок выполнения операций, т.к. оно и не должно так работать.
Цитата:

Сообщение от macdack
и что такое это объект вызова event - где он лежит?

Этот объект передается первым в обработчики событий и является по сути таким себе "описанием" произошедшего события.
Цитата:

Сообщение от macdack
ПОЧЕМУ ВМЕСТО EVENT - EVT

Потому что это просто аргумент, аргументы вы можете называть как угодно. Кстати, очень часто вы можете встретить вообще просто "е". Это просто общепринятое соглашение по именованию. такое же, как разрешение использовать примитивы "i", "j", "k" в качестве индексов при итерации по массивам.

Из всех ваших вопросов становится понятно, что того же Фленагана вы читали невнимательно. Ну или здесь на сайте учебник почитайте.

macdack 14.04.2013 11:09

и что такое это объект вызова event - где он лежит?
не атрибут ли window - window.event ?
обязательно ли его передавать в качестве аргумента функции обработчика ? или можно из этой функции к нему обратиться ?

Hekumok 14.04.2013 12:01

Цитата:

Сообщение от macdack
var ч = function(event) {
if (event.keyCode == 18) {alert("esc")}
};
window.onkeydown = ч;


не понимаю почему не работает когда написано в таком порядке -
window.onkeydown = ч; 

var ч = function(event) {
if (event.keyCode == 18) {alert("esc")}
};

читайте
Цитата:

Сообщение от macdack
и что такое это объект вызова event - где он лежит?

Нигде он не лежит, он просто передается в обработчик при вызове события
Цитата:

Сообщение от macdack
не атрибут ли window - window.event ?

В нормальных браузерах - нет, в ишаке - да
Цитата:

Сообщение от macdack
обязательно ли его передавать в качестве аргумента функции обработчика? или можно из этой функции к нему обратиться ?

Нет, по другому к нему никак нельзя обратиться
читайте


Часовой пояс GMT +3, время: 01:07.