【发布时间】:2012-08-31 12:07:49
【问题描述】:
对于一个网站,我想在用户“长按”屏幕时显示自定义上下文菜单。我在代码中创建了一个jQuery Longclick 侦听器来显示自定义上下文菜单。显示了上下文菜单,但也显示了 iPad 的默认上下文菜单!我试图通过在侦听器中的事件中添加 preventDefault() 来防止这种情况发生,但这不起作用:
function showContextMenu(e){
e.preventDefault();
// code to show custom context menu
}
$("#myId").click(500, showContextMenu);
问题
- 能否阻止显示 iPad 的默认上下文菜单?
- 可以通过使用jQuery Longclick插件来完成吗?
Longclick 插件对 iPad 有一些特定的处理(假设由it's source code 的这个 sn-p):
if (!(/iphone|ipad|ipod/i).test(navigator.userAgent)){
$(this)
.bind(_mousedown_, schedule)
.bind([_mousemove_, _mouseup_, _mouseout_, _contextmenu_].join(' '), annul)
.bind(_click_, click)
}
所以我假设这回答了我的第二个问题(假设插件使用了正确的事件)。
【问题讨论】:
标签: javascript jquery iphone ipad mobile-safari