Mobile Safari: JavaScript focus () metoda na polu wejściowym działa tylko z kliknięciem?
Nie mogę znaleźć rozwiązania tego problemu.
Mam takie proste pole wejściowe.
<div class="search">
<input type="text" value="y u no work"/>
</div>
I staram sięfocus()
to wewnątrz funkcji. Więc wewnątrz losowej funkcji (nie ma znaczenia jaka to jest funkcja) mam tę linię…
$('.search').find('input').focus();
Działa to dobrze na każdym pulpicie.
Jednak to nie działa na moim iPhonie. Pole nie jest skupione, a klawiatura nie jest wyświetlana na moim iPhonie.
Dla celów testowych i pokazania wam problemu, zrobiłem szybką próbkę:
$('#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);
Jakiś pomysł, dlaczegofocus()
nie działa z funkcją limitu czasu na moim iPhonie.
Aby zobaczyć przykład na żywo, przetestuj to skrzypce na telefonie iPhone.http://jsfiddle.net/Hc4sT/
Aktualizacja:
Stworzyłem dokładnie taki sam przypadek, w jakim aktualnie stoję w moim bieżącym projekcie.
Mam pole wyboru, które - po „zmianie” - ustawia ostrość na pole wprowadzania i wsuwanie kexboard na iPhone lub innych urządzeniach mobilnych. Dowiedziałem się, że fokus () jest ustawiony poprawnie, ale klawiatura nie pojawia się. Potrzebuję klawiatury, żeby się pokazać.
Przesłałem pliki testowe tutajhttp://cl.ly/1d210x1W3Y3W … Jeśli przetestujesz to na iPhonie, zobaczysz, że klawiatura się nie wsuwa.