Как связать одновременные события с JQuery - PullRequest
1 голос
/ 27 октября 2011

Как привязать одновременные события к селектору в jQuery?

Я имею в виду не как поймать ЛЮБОЙ щелчок или зависание на каком-либо элементе, а как поймать два события при условии, что ОБА из них происходят одновременно.Например, при наведении курсора и на клавиатуре или при нажатии и на клавиатуре, например, на Shift + щелчок и т. Д.

Заранее спасибо.

Ответы [ 5 ]

2 голосов
/ 27 октября 2011

Обнаружение Shift + щелчок легко: проверьте свойство shiftKey объекта event.

Проверка нажатой клавиши + события мыши (одновременно), с другой стороны ...:

  • Привязать событие к функции keydown / keyup, которая хранит event.keyCode или event.which в переменной
  • Создать функцию опроса, которая периодически сбрасывает эту переменную, так чтонажатия клавиш в течение последнего (пример :) 300 миллисекунд считаются
  • Добавить событие mousedown, которое проверяет последний запомненный код ключа, если он существует, и выполняет соответствующий код, если это применимо.*

    Полный код, который обрабатывает несколько событий (в примере два события нажатия клавиш), см. мой предыдущий ответ .

1 голос
/ 27 октября 2011

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

$('#foo').bind('mouseenter mouseleave', function() {
  $(this).toggleClass('entered');
});
0 голосов
/ 27 октября 2011

JQuery не предлагает никакой такой функциональности из коробки. Вы должны сами отслеживать изменения состояния через события.

0 голосов
/ 27 октября 2011

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

0 голосов
/ 27 октября 2011
...