Webサイトの場合、ユーザーが画面を「長押し」したときにカスタムコンテキストメニューを表示したいと思います。カスタムコンテキストメニューを表示するために、コードにjQueryLongclickリスナーを作成しました。コンテキストメニューが表示されますが、iPadのデフォルトのコンテキストメニューも表示されます。リスナーのイベントにを追加してこれを防止しようとしましたpreventDefault()
が、これは機能しません。
function showContextMenu(e){
e.preventDefault();
// code to show custom context menu
}
$("#myId").click(500, showContextMenu);
質問
- iPadのデフォルトのコンテキストメニューが表示されないようにすることはできますか?
- jQuery Longclickプラグインを使用して実行できますか?
Longclickプラグインには、iPad用の特定の処理があります(ソースコードのこのスニペットによると仮定します)。
if (!(/iphone|ipad|ipod/i).test(navigator.userAgent)){
$(this)
.bind(_mousedown_, schedule)
.bind([_mousemove_, _mouseup_, _mouseout_, _contextmenu_].join(' '), annul)
.bind(_click_, click)
}
したがって、これが私の2番目の質問に答えると思います(プラグインが正しいイベントを使用したと仮定します)。