Jquery: detecta si se hace clic en el botón central o derecho, si es así, haz lo siguiente:

Echa un vistazo a mi demostración jsfiddle, si e.which == 1 luego, cuando salgas, e.which == 1 clic en h2, e.which == 2 o e.which == 3 entonces no funcionará. 2 es el botón central del mouse y 3 es el botón derecho del mouse. esto también lo encontré

JQuery proporciona un atributo e.which, que devuelve 1, 2, 3 para el clic izquierdo, medio y derecho, respectivamente. De modo que también podría usar if (e.which == 3) {alert (“clic derecho”); }

Este código no está funcionando:

código:

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

Es posible que desee atrapar el evento mousedown y también debe evitar que el evento oncontextmenu detenga el menú contextual durante el evento de clic derecho.

 $("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(); }); 

He notado algunas rarezas en el pasado al usar el evento click para cualquier cosa que no sea un clic normal con el botón izquierdo. No recuerdo los detalles, pero si cambia “click” por “mousedown” o “mouseup” debería obtener mejores resultados.

Ahora el button ha sido contaminado más allá de todo reconocimiento. Según W3C, sus valores deberían ser:

  • Botón izquierdo – 0
  • Botón central – 1
  • Botón derecho – 2

Según Microsoft, sus valores deberían ser:

  • Botón izquierdo – 1
  • Botón central – 4
  • Botón derecho – 2

Sin duda, el modelo de Microsoft es mejor que el de W3C. 0 debe significar “no presionar ningún botón”, cualquier otra cosa es ilógica.

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