このような単純な入力フィールドがあります。
<div class="search">
<input type="text" value="y u no work"/>
</div>
そして、私はfocus()
関数の中でそれをしようとしています。したがって、ランダム関数の内部(関数が何であるかは関係ありません)には、この行があります…</ p>
$('.search').find('input').focus();
これは、すべてのデスクトップで問題なく機能します。
ただし、iPhoneでは動作しません。フィールドがフォーカスされておらず、iPhoneにキーボードが表示されていません。
テストの目的で、そして皆さんに問題を示すために、私は簡単なサンプルを作成しました:
$('#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);
focus()
なぜ私のiPhoneのタイムアウト機能で動作しないのか考えてみてください。
ライブの例を見るには、iPhoneでこのフィドルをテストしてください。http://jsfiddle.net/Hc4sT/
アップデート:
現在のプロジェクトで現在直面しているのとまったく同じケースを作成しました。
「変更」したときに、フォーカスを入力フィールドに設定し、iPhoneまたはその他のモバイルデバイスのkexboardにスライドインする必要がある選択ボックスがあります。focus()が正しく設定されているのに、キーボードが表示されないことがわかりました。キーボードが表示される必要があります。