在delay()之后调用focus()不会进行聚焦



我用delay()创建了一个表单:

$('form').delay(200).fadeIn().children('input').focus();

最后的focus()不工作,甚至抛出控制台错误。为什么?

注:我知道选择器不是问题,因为.children('input').addClass('monkey')工作得很好

显然我不能专注于输入,直到delay结束。以下命令使其按预期工作:

$('form').delay(200).fadeIn();
setTimeout(function(){
  $('form input').focus();
},200);

setTimeout的延迟大于或等于delay()

Delay只适用于效果,使用回调来设置焦点

$('form').delay(200).fadeIn(function() {
    $(this).children('input').focus();
});

看到小提琴

最新更新