如何在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

回到顶部