2010-11-24 13 views
1

Ich habe eine mobile Web-App, die auf Safari auf einem iPad läuft.Problem mit Mobile Safari Touch Ereigniserfassung

Es scheint, dass, obwohl die Webseite die richtige Größe für den Bildschirm hat, das Ziehen der Seite immer noch einen Teil des Bildschirms scrollt.

Mein Plan von jedem sonst nicht behandelte Berührungsereignis zu verhindern, hatte etwas zu tun:

document.addEventHandler('touchstart', do_nothing, false); 

function do_nothing(event) { 
    event.preventDefault(); 
} 

Hinweis die letzten false Parameter - das soll der Prozedur nur Arbeit im Ereignisse sagen Modus sprudelt, nicht Modus erfassen . Ein Berührungsereignis für ein bestimmtes Element sollte weiterhin wie erwartet ausgelöst werden.

Diese verhindert das Scrollen. Es verhindert jedoch auch alleclick Ereignisse die Seite zu erreichen. Kann jemand eine Lösung vorschlagen, die die standardmäßige Aktion zum Blättern von Seiten blockiert, ohne auch Klicks zu blockieren?

Antwort

1

Die Lösung scheint zu sein, den Null-Handler auf dem touchmove anstelle des touchstart Ereignisses zu registrieren.