Ich entwickle eine App für das iPad. (Es ist eine interne App, so ist es wirklich nur für das iPad und kein anderes Gerät.)Wie deaktiviert man den Klick auf Eingabe?
Auf Seite 1 der App habe ich einen Link zu Seite 2. Da ich aber im Standalone-Modus bleiben muss, ich habe das Standardklickverhalten auf den Link verhindert und stattdessen das Objekt location
geändert. Seite 2 hat zufällig eine Texteingabe an den exakt gleichen Koordinaten wie der Link, auf den ich gerade geklickt habe. Obwohl ich das Klickverhalten auf der Verknüpfung deaktiviert habe, wird jetzt ein Klickereignis auf die Eingabe ausgelöst, an der sich die Verknüpfung befand. (Dies ist wegen der Verzögerung zwischen dem Abfeuern von touchend
und dem Abfeuern von click
.)
Ich habe versucht, sowohl event.preventDefault()
und event.stopPropagation()
auf Klicks der Eingabe, aber das Click-Ereignis noch Brennen und Öffnen der Tastatur des iPad.
Irgendwelche Ideen, wie man das stoppt? Vielen Dank.
bearbeiten: die Eingabe zu readonly
oder disabled
Einstellung ist keine Optionen, wie die Eingabe, wenn absichtlich ein Benutzer arbeiten muss es den Fokus gibt (und ich werde ein touchend
Ereignis verwenden, um dies zu erreichen).
Das Problem ist, dass auf der ersten Seite ein Benutzer einen Link berührt und touchend
und click
Ereignisse auslöst. Die touchend
ändert location.pathname
, und das Ereignis click
wird ausgelöst, nachdem die zweite Seite geladen wurde. Da die zweite Seite ein Textfeld an denselben Koordinaten hat, an denen das click
-Ereignis ausgelöst wurde, wird event.target
die input
, und alle Versuche, dieses Ereignis zu deaktivieren, sind bisher fehlgeschlagen.
Sie könnten einen Touchend-Ereignis-Listener innerhalb des Klick-Listeners festlegen, der den Standardwert verhindert und sich selbst entfernt. Auf diese Weise würde nur der erste Klick abgebrochen. –
Danke - das war nicht die Lösung, sondern wies mich in die richtige Richtung. Ich habe 'event.stopPropagation' und' event.preventDefault' zu der Methode hinzugefügt, die 'location.pathname' auf' touchend' ändert und die das Klicken auf das Formular verhindert hat. –