在基于jquery-mobile的网络应用程序中,如何阻止默认浏览器菜单显示在“点按保持”...而不是我想显示自定义对话框页面..
下面提到的是我现在的代码..$(".task_row").bind('taphold',function(event, ui){
event.preventDefault();
$("#slide_down_menu").trigger('click');
});
答案 0 :(得分:10)
使用css:
a {
-webkit-touch-callout: none !important;
}
不显示标准对话框
答案 1 :(得分:2)
问题在于,您绑定的'taphold'事件是由jQuery Mobile触发的自定义事件,因此它不会触发浏览器的默认行为。
如果您要避免的默认菜单是允许您“打开”或“复制”该网址的菜单,则一种解决方案是不使用<a>
标记。如果你使用span或div,你可以绑定一个ontap函数来改变浏览器的位置,你的taphold事件不会被默认行为中断。
答案 2 :(得分:1)
我发现你必须禁用右键单击。
$(function(){
document.oncontextmenu = function() {return false;};
$(document).mousedown(function(e){
if ( e.button == 2 )
{
alert('Right mouse button!');
return false;
}
return true;
});
});
答案 3 :(得分:0)
使用ontouchstart
活动怎么样?我很确定我已经用它来阻止默认的iPad交互发生。
$(".task_row").bind('touchstart', function(event, ui){
event.preventDefault();
$("#slide_down_menu").trigger('click');
});
答案 4 :(得分:0)
你非常接近它。正确的代码是:
$('#ciytList li a ').bind('taphold', function(e) {
e.preventDefault();
return false;
} );
答案 5 :(得分:0)
我刚刚取下链接并应用了css使它看起来像一个并使用了这个
$.mobile.changePage( "#main", { transition: "slideup"} );
但我已经将它绑定到显示删除按钮的点击事件...没有更多的弹出菜单