6

我正在调用一个函数,该函数构建一个包含多个链接的表。

我想检查是否用鼠标右键或鼠标左键单击了链接。

我尝试将以下部分添加到<a>超链接中。

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

但是如果我点击一个链接,什么也不会发生。

4

2 回答 2

15

的HTML:

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

的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; 
  }
}​

演示。_

于 2012-02-29T14:27:13.407 回答
4

这是对 xdazz 答案的修改,它支持使用 e.button 的浏览器,对值进行规范化,并将其存储在 e.which 中。添加的行是 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; 
  }
}​
于 2013-07-26T21:01:54.413 回答