Подтвердить что ты не робот

Focus() не работает в setTimeout на iOS

Метод jQuery focus(), похоже, не работает при использовании из setTimeout в iOS.

Итак,

setTimeout( function () {
    // Appears to have no effect in iOS, fine in Chrome/Safari/Firefox/IE
    $('.search').focus();    

}, 500);

Но сам по себе,

// works fine.
$('.search').focus();    

См. следующий пример:

http://jsfiddle.net/nwe44/ypjkH/1/

Если вызов focus() выполняется вне setTimeout, он работает, внутри него нет. Это вдвойне любопытно, как работают другие методы. Например, в моем jsFiddle я могу изменить цвет границы, просто не фокусирую его. Есть идеи?

4b9b3361

Ответ 1

Проверить скрипт, который я обновил на http://jsfiddle.net/ypjkH/7/

    $('#selector').click( function (e) {
        e.preventDefault();
        setTimeout( doFocus  
    , 3000);

    });

  function doFocus() {
      $('.search').focus().css('border', '1px solid red');
  }

Ответ 2

Для моего приложения это работает, если вы просто поместите x.focus() в отдельную функцию (ноер) и вызовите ее из setTimeout