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 によってトリガーされるカスタム イベントであるため、ブラウザーの既定の動作をトリガーするイベントと同じではないことです。

回避しようとしているデフォルトのメニューが、URL を「開く」または「コピー」できるものである場合、1 つの解決策は<a>タグを使用しないことです。span または div を使用する場合は、ブラウザの場所を変更する ontap 関数をそれにバインドでき、タップホールド イベントはデフォルトの動作で中断されません。

于 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

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 に答える
0

あなたはそれにかなり近かった。正しいコードは次のとおりです。

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