Zapobieganie domyślnemu menu kontekstowemu na longpress / longclick w mobilnym Safari (iPad / iPhone)

W przypadku witryny chcę wyświetlić niestandardowe menu kontekstowe, gdy użytkownik „naciska” ekran. StworzyłemjQuery Longclick słuchacz w moim kodzie, aby wyświetlić niestandardowe menu kontekstowe. Zostanie wyświetlone menu kontekstowe, ale domyślne menu kontekstowe iPada jest również wyświetlane! Próbowałem temu zapobiec, dodającpreventDefault() na wydarzenie u mojego słuchacza, ale to nie działa:

function showContextMenu(e){
  e.preventDefault();
  // code to show custom context menu
}

$("#myId").click(500, showContextMenu);

pytania

Czy możesz zapobiec wyświetlaniu domyślnego menu kontekstowego iPada?Czy można to zrobić za pomocą wtyczki jQuery Longclick?

Wtyczka Longclick ma pewną specyficzną obsługę iPada (zakładając ten fragment tekstu)to kod źródłowy):

if (!(/iphone|ipad|ipod/i).test(navigator.userAgent)){
  $(this)
  .bind(_mousedown_, schedule)
  .bind([_mousemove_, _mouseup_, _mouseout_, _contextmenu_].join(' '), annul)
  .bind(_click_, click)
}

Zakładam więc, że odpowiada to moje drugie pytanie (zakładając, że wtyczka użyła poprawnego zdarzenia).

questionAnswers(6)

yourAnswerToTheQuestion