Как подключить обработчик событий клавиатуры к элементу INPUT с помощью jQuery? - PullRequest
0 голосов
/ 01 декабря 2010

Я хочу присоединить свой собственный обработчик события ключа к входу, к которому уже подключен другой обработчик события onkeydown.По сути, я хочу получить ключевое событие перед всеми остальными обработчиками и проверить, нажал ли пользователь определенную клавишу - если да, я хочу выполнить некоторые функции и сбросить событие, если нет, я хочу передать егодругой обработчик (и).

Как я могу сделать это с помощью jQuery?

Ответы [ 2 ]

3 голосов
/ 01 декабря 2010

Если вы загружаете сторонний скрипт или аддон jQuery, вы можете сначала загрузить свой скрипт или функцию.Если вы сделаете это, то сможете использовать что-то подобное без беспорядка обработчиков событий отмены привязки и повторной привязки.

// your possible interceptor code
$("#awesome").keydown(function(e) {
  if (e.keyCode < 70) {
    e.stopImmediatePropagation();
    console.log("BLOCKED!!!");
  };
});

// possible 3rd party event code loaded after your code
$("#awesome").keydown(function(e) {
  console.log("3rd party:"+e.keyCode);
});

Пример веб-страницы => http://mikegrace.s3.amazonaws.com/forums/stack-overflow/example-key-event-interception.html

Пример вывода консоли Firebug alt text

jQuery stopImmediatePropagation () документация

2 голосов
/ 01 декабря 2010

Согласно документации jQuery bind ():

"Когда событие достигает элемента, запускаются все обработчики, связанные с этим типом события для элемента. Если зарегистрировано несколько обработчиков, они всегда будут выполняться в том порядке, в котором они были связаны."

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

В этой теме есть хорошая информация по этому поводу: jQuery: открепите обработчики событий, чтобы позже связать их снова

...