Tôi có một trường đầu vào đơn giản như thế này.
<div class="search">
<input type="text" value="y u no work"/>
</div>
Và tôi đang cố gắng thực hiện focus()
nó bên trong một hàm. Vì vậy, bên trong một hàm ngẫu nhiên (không quan trọng nó là hàm gì), tôi có dòng này…
$('.search').find('input').focus();
Điều này hoạt động tốt trên mọi Máy tính để bàn.
Tuy nhiên, nó không hoạt động trên iPhone của tôi. Trường không được lấy nét và bàn phím không hiển thị trên iPhone của tôi.
Với mục đích thử nghiệm và để cho các bạn thấy vấn đề, tôi đã làm một mẫu nhanh:
$('#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);
Bất kỳ ý tưởng nào tại sao focus()
nó không hoạt động với chức năng thời gian chờ trên iPhone của tôi.
Để xem ví dụ trực tiếp, hãy kiểm tra trò chơi này trên iPhone của bạn. http://jsfiddle.net/Hc4sT/
Cập nhật:
Tôi đã tạo ra trường hợp giống hệt như tôi đang gặp phải trong dự án hiện tại của mình.
Tôi có một hộp chọn - khi được "thay đổi" - đặt tiêu điểm vào trường nhập và trượt trong kexboard trên iphone hoặc các thiết bị di động khác. Tôi phát hiện ra rằng tiêu điểm () được đặt chính xác nhưng bàn phím không hiển thị. Tôi cần bàn phím để hiển thị.