Как я могу дифференцировать, если событие щелчка было вызвано с помощью мыши или клавиши ввода JQuery - PullRequest
2 голосов
/ 11 июня 2010

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

Я хотел знать, было ли событие вызвано нажатием кнопки o клавишей ввода.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 11 июня 2010

Я обновил @ patrick's demo , используя привязку с mouseup и keyup.Когда я использовал click вместо mouseup, мое сообщение вернулось, и я щелкнул, когда фактически нажал клавишу ввода, но только в первый раз.

 $('a').bind('mouseup keyup', function(e){
  var msg = '';
  if (e.which == 13) {
   msg = 'enter pressed';
  } else if (e.which == 1) {
   msg = 'clicked';
  }
  alert( e.which + ': ' + msg );
  return false;
 })

Используя e.which, вы обнаружите, что 1 = левая мышькнопка, 2 = средняя и 3 = правая (я считаю, что эти цифры правильные).Таким образом, вы можете включить все 3, если вам нужно.

0 голосов
/ 11 июня 2010
$(document).ready(function(e) {
  $("a").keypress(function(e){
    if (e.keyCode==13) {
      alert('Enter!');
    }
  }).mousedown(function(){
    alert('Clicked!');
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...