Jquery: detecta se o botão do meio ou o botão direito do mouse é clicado, se for o caso, faça o seguinte:

Confira a minha demo jsfiddle, se e.which == 1 , em seguida, quando você saiu, clique no h2 e.which == 2 ou e.which == 3 então ele não vai funcionar. 2 é o botão do meio do mouse e 3 é o botão direito do mouse. Eu também encontrei isso:

O JQuery fornece um atributo e.which, retornando 1, 2, 3 para os cliques esquerdo, médio e direito, respectivamente. Então você também pode usar if (e.which == 3) {alert (“right click”); }

Este código não está funcionando:

código:

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

Você pode querer interceptar o evento mousedown e também evitar que o evento oncontextmenu pare o menu de contexto durante o evento de clique direito.

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

Eu observei algumas esquisitices no passado com o uso do evento click para qualquer coisa, exceto um clique com o botão esquerdo do mouse. Não me lembro dos detalhes, mas se você alterar “clique” para “mousedown” ou “mouseup”, deverá obter melhores resultados.

Agora o button foi derrubado além de todo reconhecimento. Segundo o W3C, seus valores devem ser:

  • Botão esquerdo – 0
  • Botão do meio – 1
  • Botão direito – 2

Segundo a Microsoft, seus valores devem ser:

  • Botão esquerdo – 1
  • Botão do meio – 4
  • Botão direito – 2

Sem dúvida, o modelo da Microsoft é melhor que o da W3C. 0 deve significar “nenhum botão pressionado”, qualquer outra coisa é ilógica.

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

Intereting Posts