Передача данных о событиях во встроенные обработчики событий - PullRequest
14 голосов
/ 02 октября 2010

У меня есть <input>, у которого есть встроенный обработчик событий onkeydown.В этом обработчике я хотел бы вызвать функцию и передать ей специальный параметр - данные события.

Когда я хочу обработать события (например, onmousemove) для всего документа, я использую следующий код:

document.onmousemove=function(e) {
// here I can make a good use of the 'e' variable,
// for example extract the mouse coordinates from it
}

И это работает (хотя я не знаю, откуда берется переменная e - данные о событиях).
Но на этот раз я хочу использовать функцию только для <input> упомянуто выше.
Мне нужно передать данные события в функцию, чтобы она могла получить код нажатой клавиши.И я хочу сделать это в этом встроенном обработчике событий.Я создал функцию:

function myfunc (e) {
    var evt=window.event?event:e;
    var code=evt.keyCode;
    alert (code);
}

и перепробовал все эти методы:

<input onkeydown="myfunc(this)">

<input onkeydown="myfunc(this.onkeydown)">

<input onkeydown="myfunc(onkeydown)">

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

1 Ответ

22 голосов
/ 02 октября 2010

<input onkeydown="myfunc(event)">

function myfunc (e) {
    e = e || window.event;
    var code = e.keyCode;
    alert (code);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...