如何在jQuery中将点击或其他处理程序附加到动态生成的dom中?
我使用单个文本输入形式来添加功能 - 点击生成新的文本输入。这里是我的代码:如何在jQuery中将点击或其他处理程序附加到动态生成的dom中?
HTML
<form> Fill:
<input type="text" name="0" class="target"/>
<br /><br /><br /><input type="submit" value="post it!" />
</form>
JS/jQuery的
<script> var i=1;
$(function(){
$("input.target:last").on("click", function(){
$("input.target:last").after("<br /> <input type='text' " + "name='" + i +"'" + ' class="target" />');
i++;
});
});
</script>
这正常但只有点击第一个时(非动态)生成的输入。 我在Firebug中检查过,生成的输入很好 - 它们是用正确的类名生成的,并且名称属性按预期递增 - 除了单击事件以外,一切正常都与任何输入无关,但第一个输入与非动态生成。
回答:
使用委托的事件处理程序:
$(function(){ $("form").on("click","input.target:last", function(){
$(this).after("<br /> <input type='text' " + "name='" + i +"'" + ' class="target" />');
i++;
});
});
当第二参数是一个选择器,该事件处理程序被委托。 Documentation
以上是 如何在jQuery中将点击或其他处理程序附加到动态生成的dom中? 的全部内容, 来源链接: utcz.com/qa/263227.html