Standard-Kontextmenü bei langem Drücken / langem Klicken in Mobile Safari (iPad / iPhone) verhindern

Für eine Website möchte ich ein benutzerdefiniertes Kontextmenü anzeigen, wenn ein Benutzer den Bildschirm "lang drückt". Ich habe eine erstelltjQuery Longclick Listener in meinem Code, um ein benutzerdefiniertes Kontextmenü anzuzeigen. Das Kontextmenü wird angezeigt, aber auch das Standardkontextmenü des iPad! Ich habe versucht, dies durch Hinzufügen von a zu verhindernpreventDefault() zu dem Ereignis in meinem Listener, aber das funktioniert nicht:

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

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

Fragen

Können Sie verhindern, dass das Standard-Kontextmenü des iPad angezeigt wird?Kann man das mit dem jQuery Longclick Plugin machen?

Das Longclick - Plugin hat eine spezielle Handhabung für das iPad (vorausgesetzt, durch dieses Snippet vones ist Quellcode):

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

Ich gehe davon aus, dass dies meine zweite Frage beantwortet (vorausgesetzt, das Plugin hat das richtige Ereignis verwendet).

Antworten auf die Frage(6)

Ihre Antwort auf die Frage