/ / Jquery: wykryj kliknięcie środkowego lub prawego przycisku myszy, jeśli tak, wykonaj następujące czynności: - jquery, kliknij, live, keycode, prawy przycisk myszy

Jquery: wykryj kliknięcie środkowego lub prawego przycisku myszy, jeśli tak, zrób to: - jquery, kliknij, live, keycode, prawy przycisk myszy

Sprawdź moje jsfiddle próbny, gdyby e.which == 1 następnie, gdy klikniesz lewym przyciskiem myszy, wyświetli się h2 e.which == 2 lub e.which == 3 to nie zadziała. 2 to środkowy przycisk myszy, a 3 to prawy przycisk myszy. Znalazłem to również:

JQuery zapewnia atrybut e.which, zwracając odpowiednio 1, 2, 3 dla lewego, środkowego i prawego kliknięcia. Więc możesz również użyć, jeśli (np. == 3) {alert ("prawy klik"); }

Ten kod nie działa:

kod:

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

Odpowiedzi:

24 dla odpowiedzi № 1

Możliwe, że chcesz przechwycić zdarzenie, które jest mousedown, i musisz również zapobiec temu, aby zdarzenie oncontextmenu zatrzymywało menu kontekstowe podczas zdarzenia związanego z kliknięciem prawym przyciskiem myszy.

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

2 dla odpowiedzi nr 2

Zauważyłem w przeszłości kilka dziwactw z użyciemwydarzenie kliknięcia dla czegokolwiek innego niż zwykłe kliknięcie lewym przyciskiem myszy. Nie pamiętam szczegółów, ale jeśli zmienisz "kliknij" na "mousedown" lub "mouseup", powinieneś uzyskać lepsze wyniki.


1 dla odpowiedzi nr 3

Teraz button został sfrustrowany ponad wszelkie uznanie. Według W3C jego wartości powinny wynosić:

  • Lewy przycisk - 0
  • Środkowy przycisk - 1
  • Prawy przycisk - 2

Według Microsoftu jego wartości powinny być:

  • Lewy przycisk - 1
  • Środkowy przycisk - 4
  • Prawy przycisk - 2

Bez wątpienia model Microsoftu jest lepszy niż W3C. 0 powinno oznaczać "bez naciśnięcia przycisku", wszystko inne jest nielogiczne.

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