对于一个网站,我想在用户"长按"屏幕时显示自定义上下文菜单.我在代码中创建了一个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)
问题
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)
所以我假设这回答了我的第二个问题(假设插件使用了正确的事件).
我在.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)
这是工作样本
请有人帮我这个.