javascript - 动态添加的 Textarea focus() 不起作用 CHROME EXTENSION

标签 javascript jquery

我看到了很多很接近的问题,但似乎我遗漏了什么。

我在单击按钮时附加一个 html div 标记。附加的 div 标签有一个应该获得焦点的 textarea 标签。

脚本:

$('.todosContainer').on('click', '.ion-ios-close-outline', function () {
    let myTodoTemplate = `
                    <div class="oneTodoTemplate attached">
                        <textarea id="todoInput" name="name" placeholder="what shall be done?" rows="1" cols="80"></textarea>
                    </div> `;

    $('.todosContainer').append(myTodoTemplate);
    $('.attached').fadeIn(400).first().focus();
}

我也试过:

$('.attached').fadeIn(400, function() {
    $(this).find(">:first-child").focus();
});

HTML:

<div class="todosContainer">

</div>

最佳答案

您需要添加的 html 的实例,您可以通过使用 jquery 附加预先创建的 html 来实现。在添加之前隐藏它,淡入,等到完成并聚焦。

$('.todosContainer').on('click', '.add', function() {

  let myTodoTemplate = $('<div class="oneTodoTemplate attached"><textarea id="todoInput" name="name" placeholder="what shall be done?" rows="1" cols="80"></textarea></div>');

  myTodoTemplate.hide();
  $('.todosContainer').append(myTodoTemplate);
  myTodoTemplate.fadeIn(400, function() {
    myTodoTemplate.find('textarea').focus();
  })
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="todosContainer"> <span class="add">ADD</span> </div>

关于javascript - 动态添加的 Textarea focus() 不起作用 CHROME EXTENSION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44307051/

相关文章:

javascript - 使用状态参数转换到不同状态

jquery - Asp.net 信号 R 库...我看不到我的聊天记录,我只想与我和另一个用户聊天

javascript - 如何更改输入标签之间的文本并在一行上对齐标签复选框和图标

javascript - 如何从文档 url 获取哈希

javascript - 无法在 jsfiddle 中执行 Doug Crockford 的 deentityify 示例

javascript - jQuery 选择具有特定属性的第一个 child

javascript - 如何从谷歌搜索结果 "20-pack"条目中提取源?

javascript - 使用 node-http-proxy 转发每个请求

javascript - 当不再悬停时延迟隐藏 CSS 子菜单

javascript - Uncaught ReferenceError : pos is not defined