Ich habe ein einfaches Eingabefeld wie dieses.
<div class="search">
<input type="text" value="y u no work"/>
</div>
Und ich versuche focus()
es innerhalb einer Funktion. Innerhalb einer Zufallsfunktion (egal welche Funktion es ist) habe ich diese Zeile…
$('.search').find('input').focus();
Dies funktioniert auf jedem Desktop einwandfrei.
Auf meinem iPhone funktioniert es jedoch nicht. Das Feld wird nicht fokussiert und die Tastatur wird auf meinem iPhone nicht angezeigt.
Zu Testzwecken und um euch das Problem zu zeigen, habe ich eine kurze Probe gemacht:
$('#some-test-element').click(function() {
$('.search').find('input').focus(); // works well on my iPhone - Keyboard slides in
});
setTimeout(function() {
//alert('test'); //works
$('.search').find('input').focus(); // doesn't work on my iPhone - works on Desktop
}, 5000);
Irgendeine Idee, warum das focus()
mit der Timeout-Funktion auf meinem iPhone nicht funktionieren würde.
Testen Sie diese Geige auf Ihrem iPhone, um das Live-Beispiel zu sehen. http://jsfiddle.net/Hc4sT/
Aktualisieren:
Ich habe genau den gleichen Fall erstellt, mit dem ich derzeit in meinem aktuellen Projekt konfrontiert bin.
Ich habe ein Auswahlfeld, das - wenn "geändert" - den Fokus auf das Eingabefeld setzen und das Kexboard auf dem iPhone oder anderen Mobilgeräten einschieben soll. Ich habe herausgefunden, dass der Fokus () richtig eingestellt ist, aber die Tastatur nicht angezeigt wird. Ich brauche die Tastatur, um zu erscheinen.