focus()在iOS上的setTimeout中不起作用

时间:2011-07-28 22:15:16

标签: jquery css focus

jQuery的focus()方法在iOS中的setTimeout中使用时似乎不起作用。

所以,

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/

如果在setTimeout之外进行focus()调用,则它会起作用,而不是。这是非常好奇的,因为其他方法确实有效。例如,在我的jsFiddle中,我可以更改边框颜色,只是不要对焦它。有任何想法吗?

2 个答案:

答案 0 :(得分:2)

检查我在http://jsfiddle.net/ypjkH/7/

更新的小提琴
    $('#selector').click( function (e) {
        e.preventDefault();
        setTimeout( doFocus  
    , 3000);

    });

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

答案 1 :(得分:0)

对于我的应用程序,如果您只是将x.focus()放入(另一个)单独的函数并从setTimeout中调用它