Question

Je suis l'appel d'une fonction, qui construit un tableau qui contient plusieurs liens.

Je veux vérifier si un lien a été cliqué avec le bouton droit ou gauche de la souris.

J'ai essayé d'ajouter de la partie suivante de la <a> lien hypertexte.

onmousedown="function mouseDown(e){
switch (e.which) {
   case 1: alert('left'); break;
   case 2: alert('middle'); break;
   case 3: alert('right'); break; }
}"

Mais rien ne se passe Si je clique sur un lien.

Était-ce utile?

La solution

Le code html:

<a href="#" onmousedown="mouseDown(event);">aaa</a>​​​​​​​​​​​​​​​​​​​​​​​​​​​

Le javascript:

function mouseDown(e) {
  e = e || window.event;
  switch (e.which) {
    case 1: alert('left'); break;
    case 2: alert('middle'); break;
    case 3: alert('right'); break; 
  }
}​

L' démo.

Autres conseils

Voici une modification de xdazz réponse qui prend en charge les navigateurs qui utilisent l'e.bouton, normalise la valeur, et la stocke dans e.qui.Les lignes ajoutées sont ce qui sont utilisés dans la bibliothèque JQuery.

function mouseDown(e) {
  e = e || window.event;
  if ( !e.which && e.button !== undefined ) {
    e.which = ( e.button & 1 ? 1 : ( e.button & 2 ? 3 : ( e.button & 4 ? 2 : 0 ) ) );
  }
  switch (e.which) {
    case 1: alert('left'); break;
    case 2: alert('middle'); break;
    case 3: alert('right'); break; 
  }
}​
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top