代码之家  ›  专栏  ›  技术社区  ›  Mona Coder

关于将光标放入动态添加的输入中的问题

  •  0
  • Mona Coder  · 技术社区  · 7 年前

    基于我的演示代码,为什么我不能将光标移动到动态添加的输入中?如你所见,我正在使用 .focus() 允许用户开始输入文本,而无需单击此处,但它不起作用。

    $(".container").dblclick(function(e) {
      $(this).append($('<input type="text"/>').css({ //some CSS here
      }).focus());
    });
    .container {
      background: #ddd;
      height: 600px;
      position: relative
    }
    
    input {
      margin: 30px;
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <div class="container">
    
    </div>
    2 回复  |  直到 7 年前
        1
  •  1
  •   The fourth bird    7 年前

    您可以关注最后一个输入元素:

    $(".container").dblclick(function(e) {
        $(this).append($('<input type="text"/>').css({ //some CSS here
        }));
        $("input:last").focus();
    });
    

    $(".container").dblclick(function(e) {
      $(this).append($('<input type="text"/>').css({ //some CSS here
      }));
      $("input:last").focus();
    });
    .container {
      background: #ddd;
      height: 600px;
      position: relative
    }
    
    input {
      margin: 30px;
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <div class="container">
    
    </div>
        2
  •  1
  •   Kosh    7 年前

    你在设置 focus 在将输入附加到dom之前。

    尝试以下操作:

    $(".container").dblclick(function(e) {
      $('<input type="text"/>')
        .css({ /* some CSS here */ })
        .appendTo(this)
        .focus();
    });
    .container {
      background: #ddd;
      height: 600px;
      position: relative
    }
    
    input {
      margin: 30px;
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <div class="container">
    
    </div>