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.

questionAnswers(7)

yourAnswerToTheQuestion