0

デスクトップでの右クリックとモバイルデバイスでのタップホールドで起動されるコンテキストメニューとしてjQueryモバイルポップアップを使用しています。

私の問題:右クリックすると、ポップアップが表示されます-正常に動作します。しかし、ポップアップが開いているときにポップアップの外側を右クリックすると、ポップアップが閉じられ、新しいポップアップの代わりに標準のブラウザー コンテキスト メニューが表示されます。

ポップアップは、イベントをキャッチするためにそれ自体の下に新しいレイヤー (そのクラスは ".ui-popup-screen" ) を作成しますが、次のようなものです。

$(".ui-popup-screen").on("click", function(event) {
    event.preventDefault();
    $('#myElementWithPopupContextMenu').contextmenu();
    return false;
});

動作しません。

それを修正する方法はありますか?

4

1 に答える 1

1

私は次のパターンのように書くのが好きです。

// prevent default contextmenu and trigger as 'custom-contextmenu'
$(".ui-popup-screen")
    .bind("contextmenu",function(e) {
        e.preventDefault();

        // create and show menu
        $("#myElementWithPopupContextMenu").trigger( "custom-contextmenu" );
    });

// context menu handler
$("#myElementWithPopupContextMenu").bind( "custom-contextmenu", function(e) {
    // my context menu
}
于 2013-02-19T15:50:55.807 に答える