javascript - PreventDefault 右键单击​​图像

标签 javascript jquery

是否可以在图像上触发文档右键单击事件?

这就是我到目前为止所做的,我只能跟踪我的图片上的右键单击事件

<script type="text/javascript">
    $("#myImage").mousedown(function (event) {
        if (event.which == 3) {
           //I need Some code to fire Document right click event (or maybe a different method)
        }
    });
</script>

谢谢你的帮助

编辑1: 我真正想要的是当我右键点击我的图片时,我想显示一个菜单,不是图片右键菜单,而是文档右键菜单 好像图片不存在或已禁用,再次感谢您的帮助:)

编辑2: 到目前为止我所做的是使用 preventDefault 禁用右键单击事件,现在我需要显示菜单:

<script type="text/javascript">
document.addEventListener('contextmenu', function (e) {
e.preventDefault();
//Need to display the menu
}, false);
</script>

编辑3: 谢谢,我创建了自己的菜单,如果我有默认菜单那就太好了,但这个也很完美:)

<script type="text/javascript">
    $(document).bind("contextmenu", function (event) {
        event.preventDefault();
        $(".custom-menu").toggle(100).
  css({
      top: event.pageY + "px",
      left: event.pageX + "px"
  });
    });
   //To hide the menu if left click event is fired
    $(document).bind("mousedown", function () {
        $(".custom-menu").hide(100);
    });
</script>
//New Menu
<ul class='custom-menu'>
  <a>Back</a><br />
  <a>Refresh</a><br />
  <a>Save</a><br />
</ul>
<style type="text/css">
.custom-menu {
  position: absolute;
  background-color:#EEE;
  overflow: hidden;
  width: 100px;
  }
</style>

最佳答案

event.which 其实是错误的检查...

使用 event.button == 2。查看MouseEvent文档。

或者使用contextmenu event ,正如@MarshallOfSound 所建议的(但随后作为答案被删除),但请注意,如果用户通过右键单击以外的其他方法调用 contextmenu ,它也可能会触发,例如在 OSX 上左键单击 + CTRL。而且它是最新的 HTML5 内容,因此它可能不适用于旧版浏览器。

编辑 编辑后,contextmenu 可能更适合您的需要。另外,event.preventDefault是你的 friend 。 ;)

关于javascript - PreventDefault 右键单击​​图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24272198/

相关文章:

javascript - 如何在 jQuery 选择器中转义 ~ 字符

javascript - 更改悬停在列表项上方的列表项背景图像?

javascript - 如何使用javascript将数据从一个html页面发送到另一个

jquery - select2 - 始终下拉而不是下拉

jquery - 从自动完成中选择时重定向用户?

javascript - 动态创建键值对数组(从 mongoDB 数据库中获取)

javascript - 如何使用 javascript 检索复选框的属性值

javascript - 如果变量匹配另一个变量

javascript - 为 html/css/javascript 游戏创建一个无休止的 javascript 函数

javascript - AngularJS - 路由更改时更新 Controller