我正在尝试编写一个JavaScript / jQuery函数,当点击类为“add-row”的按钮时调用该函数。该函数将HTML附加到DOM中,添加 * 另一个 * 具有相同类的按钮。我想要的是,当第二个按钮被点击时,该函数将再次被调用,并创建另一个按钮,依此类推。
下面是第一个按钮的代码:
<div>
<label for="add_row-0"></label><br>
<button type="button" class="add-row">Add Another Item</button>
</div>
下面是JavaScript函数:
$(document).ready(function(){
$(".add-row").click(function(){
$(".add-row").last().after(
`<div>
<label for=${button_identifier}></label><br>
<button type="button" class="add-row">Add Another Item</button>
</div>
</div>`
);
});
});
这不起作用-发生的情况是,第一个按钮工作正常,并调用创建第二个按钮的函数,但单击第二个按钮什么也不做。
2条答案
按热度按时间zwghvu4y1#
在所有带有按钮的
<div>
容器的最近静态祖先上使用事件委托。这里使用
document
作为示例,但是为了获得更好的性能,您应该将其替换为最近的静态祖先。6fe3ivhb2#
在你的故事里有两件事要说,
1-.click()函数不能作用于dom中新附加的元素,它只作用于页面加载时呈现的元素。
2-为了让你的click函数在新添加的元素上工作,你需要使用.on(“click”)函数,所以你监听文档中的click。
所以你的代码应该是