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.