9

在基于 jquery-mobile 的 Web 应用程序中,我如何防止默认浏览器菜单显示在“点击保持”上......相反,我想显示一个自定义对话框页面......

下面提到的是我现在的代码..

$(".task_row").bind('taphold',function(event, ui){
    event.preventDefault();
    $("#slide_down_menu").trigger('click');
});
4

6 回答 6

11

使用 CSS:

a {
    -webkit-touch-callout: none !important; 
}

不显示标准对话框

于 2012-04-03T12:23:22.303 回答
2

问题是您绑定的“taphold”事件是由 jQuery Mobile 触发的自定义事件,因此它与触发浏览器默认行为的事件不同。

如果您试图避免的默认菜单是允许您“打开”或“复制”网址的菜单,那么一种解决方案是不使用<a>标签。如果你使用 span 或 div,你可以绑定一个 ontap 函数来改变浏览器的位置,并且你的 taphold 事件不会被默认行为中断。

于 2011-12-15T01:55:39.490 回答
1

我发现你必须禁用右键单击。

$(function(){

    document.oncontextmenu = function() {return false;};

    $(document).mousedown(function(e){

        if ( e.button == 2 )
        { 
            alert('Right mouse button!'); 
            return false; 
        }

        return true;
    });
});
于 2012-03-16T16:02:56.177 回答
0

你很接近它。正确的代码是:

$('#ciytList li a ').bind('taphold', function(e) {
    e.preventDefault();
    return false;
} );
于 2011-08-15T00:38:22.920 回答
0

使用ontouchstart事件呢?我很确定我已经使用它来防止发生默认的 iPad 交互。

$(".task_row").bind('touchstart', function(event, ui){
    event.preventDefault();
    $("#slide_down_menu").trigger('click');
});
于 2011-07-10T09:44:11.643 回答
0

我刚刚取消了链接并应用了 css 使其看起来像一个并使用了这个

$.mobile.changePage( "#main", { transition: "slideup"} );

但我已经将它绑定到显示删除按钮的单击事件...不再弹出菜单

于 2012-01-17T04:43:24.667 回答