jquery - 不关注动态添加的文本框
问题描述
每次单击按钮时,都会添加一个新文本框,我希望文本框专注于加载。如果我再次单击该按钮,我希望焦点转移到新添加的文本框。
- 尝试过自动对焦,但它仅适用于第一次。
- 也试过 $("#xyz").focus() 但它也不起作用。
解决方案
如果我理解您的意思正确,那么您正在寻找类似以下示例的内容:
$('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
方法清除间隔。
推荐阅读
- google-apps-script - 如何识别为一张 Google 表格提供多个 Google 表单?
- python - 我可以通过存根文件让 VSCode 引用外部函数而无需导入它们吗?
- arduino - 使用 Arduino Mega 而不是 Uno 作为电容传感器
- excel - 从 Microsoft Excel 遍历所有 Microsoft Word 文档(包括所有打开的 Word 应用程序)
- ruby-on-rails - 无法从 Git 提交中获取已删除的文件
- python - 如何打破循环
- android - 片段是否有等效的 parent_activity ?
- css - CSS 边框折叠在 td 内的 display:flex 中不能在 Chrome 中完全工作?
- postgresql - Postgres | PgBouncer 无法访问数据库(使用所有者登录)
- c# - 如何在不更改链接结构的情况下使用 \ 转义字符 (, )、[、]、*、_、: []()