$(document).ready(function() {
  $(".cl").on("click", function() {
    $(".inpt").delay(5000).focus();
  });
});

.cl {
  background: #009;
  width: 300px;
  height: 100px;
  line-height: 100px;
  color: #fff;
  text-align: center;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="inpt">
<div class="cl">click me</div>





上面的代码存在的问题是delay()focus()上不起作用。

最佳答案

文档指出delay仅适用于动画(除非您设置队列),您可能只想使用setTimeout即可

$(document).ready(function() {
    $(".cl").on("click", function() {
        setTimeout(function() {
            $(".inpt").focus();
        }, 5000);
    });
});


为了完整起见,请在队列中使用delay

$('.inpt').delay(5000).queue(function (next) {
    $(this).focus();
    next();
});

关于javascript - 延迟()不适用于焦点(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43204439/

10-11 12:39
查看更多