我正在使用PhoneGap和jQM为iPhone和iPad构建应用程序
<div class="ui-block-a">
<a id="btnLink" href="#pageID" data-role="button"></a>
</div>
Run Code Online (Sandbox Code Playgroud)
它运行正常,但是当我在设备上运行它(没有尝试模拟器)并长按时,我会在普通浏览器中获得默认的iPhone菜单以打开或复制链接.
如何在我的应用中禁用此默认功能?
我试过这些没有成功:
$("a").click(function(event) {
event.preventDefault(); // long press menu still apear
});
$("a").bind('click',function(event) {
console.log(['preventingclick',event.type]);
event.preventDefault(); // long press menu still apear
});
Run Code Online (Sandbox Code Playgroud)
如果我绑定'taphold'我仍然看到长按菜单,但在我点击取消后我看到控制台日志:["防止长按","taphold"]
$("a").bind('taphold', function(event) {
console.log(['preventing long press',event.type]);
event.preventDefault(); // long press menu still apear
});
Run Code Online (Sandbox Code Playgroud)
如果我在'taphold'事件中使用委托代码如下:
$("a").delegate('taphold', function(event) {
console.log(['preventing long press',event.type]);
event.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
将解决问题,但我不能再附加任何事件,因此我的按钮之后将不起作用.
$('#btnLink').bind("click", function() {
$.mobile.changePage('mypage', 'slide'); // won't fire any more because of the delegate before
});
Run Code Online (Sandbox Code Playgroud)
我知道代表将在现在和将来适用于所有元素,但我认为我接近答案,但还没有.
提前致谢
