0

我有一个 img 标签(当然不是确切的语法)

<img src="http://localhost/img/img_1.png" id=1 onclick="say_hi(id)" href="/img_page_1/" alt="Aim Pic" width="230" height= "164" />

我需要的是当用户左键单击 img 时,我需要触发 onClick,当用户右键单击它时,它必须像一般的 href 显示选项(“在新窗口中打开”等)

为什么我需要它,我想通过模糊页面的其余部分在主页中显示与图像相关的页面预览(这里使用ajax在say_hi函数中加载图像页面的预览)并且当用户右键单击它时我想要它感觉就像一个普通的href,这样他就可以直接在其他选项卡中打开页面而不是预览。

编辑:简单来说,我想声明/编写/提供指向某些图像的链接,该图像在右键单击时通常充当链接(显示具有链接所有选项的上下文菜单),但它必须触发 onClick 事件(或左键单击时在 javascript 中运行函数)。

谢谢你。

4

2 回答 2

1

您需要通过事件对象的按钮成员来区分鼠标按钮:

var left, right;
left = mie ? 1 : 0;
right = 2;

var clickHandler = function (e){
    if(e.button === left){
       // do onClick stuff and return
    }
    else if(e.button === right){
       // show your context menu
    }
}, false);

但这看起来你可以简单地拥有你的链接,就<a href="" onClick="clickHandler">description</a>好像我没有误解你想要做什么一样。

于 2013-06-17T21:55:21.950 回答
1

在回复问题编辑时删除了先前的答案。


新的编辑要简单得多,请参见以下内容(以 inline-JavaScript 为例 - 这是一种不好的做法,不应在任何生产代码中使用 - 请参阅此处此处了解更多信息。):

HTML/内联-JS:

<a href="/img_page_1/" onclick="left_click(id)">
  <img src="http://localhost/img/img_1.png">
</a>

首先,href它不是图像上的有效属性 - 将其提供给锚点 ( <a>),然后您可以将其包裹在图像周围。

只有左键单击会触发您的功能,右键单击仍然具有默认行为。

功能:

function left_click(id) {
  event.preventDefault(); // Prevents the default anchor action.
  // Rest of your function here.
}

在这里,我们阻止了锚点触发的默认行为 - 阻止链接将您带到不同的页面。

jsFiddle 示例。

于 2013-06-17T21:56:31.097 回答