首页 > 解决方案 > 不关注动态添加的文本框

问题描述

每次单击按钮时,都会添加一个新文本框,我希望文本框专注于加载。如果我再次单击该按钮,我希望焦点转移到新添加的文本框。

标签: jqueryhtml

解决方案


如果我理解您的意思正确,那么您正在寻找类似以下示例的内容:

$('button').on('click', function () {
  var textBox = $('<input type="text">');
  
  textBox.appendTo('body');
  
  var interval = setInterval(function () {
    textBox.focus();
    
    if (textBox.is(':focus')) {
      clearInterval(interval);
    }
  }, 100);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<button type="button">Add textbox</button>

将新输入附加到 body 标签后,我们设置focus为元素。但有时它不是立即聚焦的,所以我们需要setInterval在 100 毫秒后再次检查聚焦。然后,当元素被聚焦时,我们通过 usingclearInterval方法清除间隔。


推荐阅读