我已经创建了一个delay()
的表单,如下所示:
$('form').delay(200).fadeIn().children('input').focus();
最后focus()
不起作用,甚至抛出控制台错误。的为什么吗
P.S。我知道选择器不是问题,因为.children('input').addClass('monkey')
工作正常。
答案 0 :(得分:2)
显然,在delay
结束之前,我无法专注于输入。以下内容使其按预期工作:
$('form').delay(200).fadeIn();
setTimeout(function(){
$('form input').focus();
},200);
只需将setTimeout
延迟大于或等于delay()
。
答案 1 :(得分:0)
Delay
仅适用于效果,使用回调来设置焦点。
$('form').delay(200).fadeIn(function() {
$(this).children('input').focus();
});
请参阅fiddle