我有一个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显示选项(“在新窗口中打开”等)
为什么我需要它,我想在主页中显示与图像相关的页面预览,通过bluring页面的其余部分(此处使用ajax加载say_hi函数中的图像页面的预览)以及当用户右键单击时我希望它感觉像一个正常的href,这样他就可以直接在其他标签页面打开页面而不是预览。
编辑: 简单来说,我希望声明/写/给出一些图像的链接,当右键单击时,该图像通常作为链接起作用(显示具有链接所有选项的上下文菜单),但它必须触发onClick事件(或运行一个左键单击时在javascript中运行。
谢谢。
答案 0 :(得分:1)
您需要通过事件对象的button成员区分鼠标按钮:
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>
。
答案 1 :(得分:1)
删除了之前的回答以回复问题编辑。
新编辑要简单得多,请参阅以下内容(使用内联JavaScript作为示例 - 这是不好的做法,不应在任何生产代码中使用 - 请参阅 here 和here了解更多信息。):
<强> 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.
}
这里我们阻止了锚点触发的默认行为 - 阻止链接转到另一个页面。