Jquery点击事件无法正常工作

smm*_*smm 0 javascript jquery

我想在我点击最新生成的文本框时附加一个新的文本输入框.

但只有当我单击第一个文本输入框时,它才会生成新的文本输入框.那么,任何解决方案?

<script type="text/javascript">
$(function(event){
  $('.add-new').click(function(){
    $('.add-new').removeClass();
    $('form').append("<br><input type='text' name='user[]' class='add-new'/>");      
  });
});

</script>

<div>
  <form method='post' name='login'>
    <input type='text' name='user[]' class='add-new'/>
  </form>
</div>
Run Code Online (Sandbox Code Playgroud)

gdo*_*ica 5

$('form').on('click','.add-new', function(){
Run Code Online (Sandbox Code Playgroud)

直接事件=> 委托事件

现场演示

完整代码:

$('form').on('click', '.add-new', function() {
    $(this).removeClass('add-new');
    $(this).closest('form').append("<br><input type='text' name='user[]' class='add-new'/>");
});?
Run Code Online (Sandbox Code Playgroud)

事件处理程序仅绑定到当前选定的元素; 它们必须存在于您的代码调用.on()时的页面上.要确保元素存在且可以选择,请在文档就绪处理程序内对页面上HTML标记中的元素执行事件绑定.如果将新HTML注入页面,请在将新HTML放入页面后选择元素并附加事件处理程序.或者,使用委托事件来附加事件处理程序,如下所述.

委托事件的优点是,它们可以处理来自稍后添加到文档的后代元素的事件.通过选择在附加委托事件处理程序时保证存在的元素,您可以使用委派事件来避免频繁附加和删除事件处理程序的需要.

on 文档