所以我要在表格中追加一行,然后在单击按钮时删除该行。
但是我不能以一种看起来自然的方式来做到这一点,例如:

$(".usun").on("click", function(){
    $(this).parent().parent().remove();
});


其中,.usun是一类按钮,用于删除表中的一行。当然,这段代码片段在$(document).ready(...内部。似乎对我有用的是:

$(this).on("click", ".usun", function(){
    $(this).parent().parent().remove();
});


而且我不明白为什么。有人可以解释一下吗?

最佳答案

.on()有几种方法签名,您可以阅读有关here的信息。

您的第一种语法($(".usun").on()仅一次是将点击处理程序附加到每个单独的.usun元素。如果以后添加更多,则它们没有点击处理程序。

第二种语法($(this).on("click", ".usun", function()...)将单个侦听器附加到document,说:“每当单击我体内的.usun时,请执行某些操作”。这涵盖了在触发$(document).ready之后添加更多匹配元素的情况。

关于javascript - .on()在附加元素上不起作用(jQuery),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27113366/

10-12 07:10