JQuery: определить, нажата ли нажата средняя или правая кнопка мыши, если да, сделайте следующее:

Посмотрите мою демонстрационную версию jsfiddle, если e.which == 1 тогда, когда вы e.which == 1 клик по h2, она будет e.which == 2 или e.which == 3 тогда это не сработает. 2 – средняя кнопка мыши, а 3 – правая кнопка мыши. Я тоже нашел это:

JQuery предоставляет атрибут e.which, возвращающий 1, 2, 3 для левого, среднего и правого кликов соответственно. Таким образом, вы также можете использовать if (e.which == 3) {alert («правый клик»); }

Этот код не работает:

код:

  $("h2").live('click', function(e) { if( e.which == 2 ) { e.preventDefault(); alert("middle button"); } }); 

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

 $("h2").live('mousedown', function(e) { if( (e.which == 1) ) { alert("left button"); }if( (e.which == 3) ) { alert("right button"); }else if( (e.which == 2) ) { alert("middle button"); } e.preventDefault(); }).live('contextmenu', function(e){ e.preventDefault(); }); 

Я заметил некоторые странности в прошлом с использованием события click для чего угодно, кроме обычного щелчка левой кнопкой мыши. Я не помню подробностей, но если вы измените «щелчок» на «mousedown» или «mouseup», у вас должны быть лучшие результаты.

Теперь button была заглушена вне всякого признания. Согласно W3C его значения должны быть:

  • Левая кнопка – 0
  • Средняя кнопка – 1
  • Правая кнопка – 2

Согласно Microsoft, ее значения должны быть:

  • Левая кнопка – 1
  • Средняя кнопка – 4
  • Правая кнопка – 2

Без сомнения, модель Microsoft лучше, чем W3C. 0 должно означать «никакая кнопка не нажата», все остальное нелогично.

С http://www.quirksmode.org/js/events_properties.html

Давайте будем гением компьютера.