est ici la fonction que j'utilise:
var ieButtons = { "1": "left", "2": "right", "3": "leftright", "4": "middle" };
function getMouseButton(evt) {
if (typeof evt.which == "number") {
// Non-IE case. Works in everything apart from Opera < 8
return (evt.which < 2) ? "left" :
((evt.which == 2) ? "middle" : "right");
} else {
// IE case
return ieButtons[evt.button] || "unknown";
}
}
document.onmousedown = function(evt) {
evt = evt || window.event;
window.alert(getMouseButton(evt));
};
article de Jan Wolter sur les événements de la souris est apparemment moins bien connu que son seul sur les événements clés, mais est tout aussi bon, et frappe Quirksmode dans un bicorne: http://unixpapa.com/js/mouse.html Ayant juste regardé le code jQuery, il semble normaliser la propriété which
de l'événement correctement (1 pour la gauche, 2 pour le milieu, 3 pour le droit), bien que sans la fonctionnalité intéressante d'IE de rapporter plusieurs presses de boutons simultanés .
Hehe ... Voilà pourquoi j'AIME jQuery! – skyeagle
@skyeagle - jQuery est un amour typique ou déteste ce genre de scénario. Je l'aime à cause des sélecteurs fantastiques et parce que je n'ai jamais besoin de m'inquiéter des différences entre les navigateurs comme dans cet exemple si vous deviez coder ceci avec du JavaScript "normal". – chigley
Important de noter que rien de ce que vous faites dans l'événement 'mousedown' n'empêchera le menu contextuel sur la plupart des navigateurs (par exemple, cliquez avec le bouton droit de la souris). Vous devez explicitement accrocher l'événement 'contextmenu', s'il est fourni. Voir le guide dont [David parle] (http://stackoverflow.com/questions/3850498/how-to-respond-to-mouse-button-clicks-in-javascript/3850519#3850519) pour plus d'informations. Exemple: http://jsbin.com/anofi3 –