相关疑难解决方法(0)

在移动Safari(iPad/iPhone)中防止longpress/longclick上的默认上下文菜单

对于一个网站,我想在用户"长按"屏幕时显示自定义上下文菜单.我在代码中创建了一个jQuery Longclick监听器来显示自定义上下文菜单.将显示上下文菜单,但也会显示iPad的默认上下文菜单!我试图通过preventDefault()在我的监听器中添加一个事件来防止这种情况,但这不起作用:

function showContextMenu(e){
  e.preventDefault();
  // code to show custom context menu
}

$("#myId").click(500, showContextMenu);
Run Code Online (Sandbox Code Playgroud)

问题

  1. 你可以阻止iPad的默认上下文菜单显示吗?
  2. 可以使用jQuery Longclick插件完成吗?

Longclick插件具有针对iPad的一些特定处理(假设通过它的源代码片段):

if (!(/iphone|ipad|ipod/i).test(navigator.userAgent)){
  $(this)
  .bind(_mousedown_, schedule)
  .bind([_mousemove_, _mouseup_, _mouseout_, _contextmenu_].join(' '), annul)
  .bind(_click_, click)
}
Run Code Online (Sandbox Code Playgroud)

所以我假设这回答了我的第二个问题(假设插件使用了正确的事件).

javascript iphone jquery mobile-safari ipad

28
推荐指数
4
解决办法
5万
查看次数

jQuery ContextMenu事件在IOS 8.2中不起作用

我在.html示例中使用了contextMenu事件,当我长按DIV时它会被触发,但是现在它无法正常工作.在最新的IOS 8.2版本中有什么问题.这是示例代码,

<head>
    <title></title>
    <script src="Scripts/jquery-1.9.1.min.js"></script>
    <script type="text/javascript">

        $(document).ready(function () {
            $("#content").on("contextmenu", function () {
                alert("CM");
            });
        });
    </script>
</head>

<body>
    <div id="content" style="height:300px; width:300px; background-color:gray;"></div>
</body>
Run Code Online (Sandbox Code Playgroud)

这是工作样本

http://jsfiddle.net/4zu1ckgg/

请有人帮我这个.

javascript jquery contextmenu ios

6
推荐指数
1
解决办法
2186
查看次数

标签 统计

javascript ×2

jquery ×2

contextmenu ×1

ios ×1

ipad ×1

iphone ×1

mobile-safari ×1