我想在我点击最新生成的文本框时附加一个新的文本输入框.
但只有当我单击第一个文本输入框时,它才会生成新的文本输入框.那么,任何解决方案?
<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)
$('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放入页面后选择元素并附加事件处理程序.或者,使用委托事件来附加事件处理程序,如下所述.
委托事件的优点是,它们可以处理来自稍后添加到文档的后代元素的事件.通过选择在附加委托事件处理程序时保证存在的元素,您可以使用委派事件来避免频繁附加和删除事件处理程序的需要.
| 归档时间: |
|
| 查看次数: |
539 次 |
| 最近记录: |