
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):
if (!(/iphone|ipad|ipod/i).test(navigator.userAgent)){ $(this) .bind(_mousedown_,schedule) .bind([_mousemove_,_mouseup_,_mouSEOut_,_contextmenu_].join(' '),annul) .bind(_click_,click)} 所以我假设这回答我的第二个问题(假设插件使用正确的事件)。
解决方法 感谢JDandChips为 pointing我的解决方案。它与longclick插件结合使用。为了文档,我会发布自己的答案,以显示我做了什么。HTML:
<script type="text/JavaScript" src="https://raw.github.com/pisi/Longclick/master/jquery.longclick-min.Js"></script><p><a href="http://www.Google.com/">Longclick me!</a></p>
JavaScript已经OK了:
function longClickHandler(e){ e.preventDefault(); $("body").append("<p>You longclicked. Nice!</p>");}$("p a").longclick(250,longClickHandler); 修复是将这些规则添加到样式表中:
body { -webkit-touch-callout: none !important; }a { -webkit-user-select: none !important; } Disabled context menu example。
更新:jQuery Longclick插件似乎只适用于iPad上的Safari,而不是Google Chrome!我正在看这个。
更新2:由于我在Chrome中收到以下错误(由于https),所以我在“小提琴”的源代码中嵌入了Longclick JavaScript:
Refused to execute script from ‘07003’ because its MIME type (‘text/plain’) is not executable,and strict MIME type checking is enabled.
请参阅更新版本:http://jsfiddle.net/z9ZNU/53/
总结以上是内存溢出为你收集整理的javascript – 防止移动Safari(iPad/iPhone)上的longpress/longclick的默认上下文菜单全部内容,希望文章能够帮你解决javascript – 防止移动Safari(iPad/iPhone)上的longpress/longclick的默认上下文菜单所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)