从iOS中的setTimeout中使用时,jQuery的focus()方法似乎不起作用.
所以,
setTimeout( function () {
// Appears to have no effect in iOS, fine in Chrome/Safari/Firefox/IE
$('.search').focus();
}, 500);
Run Code Online (Sandbox Code Playgroud)
但就它本身而言,
// works fine.
$('.search').focus();
Run Code Online (Sandbox Code Playgroud)
请参阅以下示例:
http://jsfiddle.net/nwe44/ypjkH/1/
如果focus()调用是在setTimeout之外进行的,那么它就可以了.这是非常好奇的,因为其他方法确实有效.例如,在我的jsFiddle中,我可以更改边框颜色,只是不要对焦它.有任何想法吗?
检查我已更新的小提琴http://jsfiddle.net/ypjkH/7/
$('#selector').click( function (e) {
e.preventDefault();
setTimeout( doFocus
, 3000);
});
function doFocus() {
$('.search').focus().css('border', '1px solid red');
}
Run Code Online (Sandbox Code Playgroud)