Javascript .on()不';不处理附加元素(jQuery)

Javascript .on()不';不处理附加元素(jQuery),javascript,jquery,Javascript,Jquery,因此,我在表中追加一行,然后单击一个按钮,我想删除该行。 但是我不能用一种看起来很自然的方式来做,比如: $(".usun").on("click", function(){ $(this).parent().parent().remove(); }); 其中.usun是一类按钮,用于删除表中的一行。当然,这段代码在$(文档)中。就绪(…。对我来说似乎有效的是: $(this).on("click", ".usun", function(){ $(this).parent()

因此,我在表中追加一行,然后单击一个按钮,我想删除该行。 但是我不能用一种看起来很自然的方式来做,比如:

$(".usun").on("click", function(){
    $(this).parent().parent().remove();
});
其中
.usun
是一类按钮,用于删除表中的一行。当然,这段代码在
$(文档)中。就绪(…
。对我来说似乎有效的是:

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

我不明白为什么。有人能给我解释一下吗?

对于()上的
.on
有几种方法签名,您可以阅读

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


第二种语法(
$(this).on(“click”,“.usun”,function()…
)将一个侦听器附加到
文档
,表示“每当单击我内部的
.usun
时,做点什么”。这包括在
$(文档)之后添加更多匹配元素的情况.ready
被激发。

有几个方法签名可用于
.on()
,您可以阅读这些签名

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


第二种语法(
$(this).on(“click”,“.usun”,function()…
)将一个侦听器附加到
文档
,表示“每当单击我内部的
.usun
时,做点什么”。这包括在
$(文档)之后添加更多匹配元素的情况.ready
被激发。

这是因为在注册事件时,特定的
.usun
还不存在。 您需要将事件注册到其父元素(最好是表id),如下所示:

这将确保您将事件甚至附加到“未出生”元素


希望这有帮助!

这是因为在注册事件时,特定的
.usun
还不存在。 您需要将事件注册到其父元素(最好是表id),如下所示:

这将确保您将事件甚至附加到“未出生”元素


希望这能有所帮助!

所以你知道这一点……你的问题与javascript中的实时列表和非实时列表(集合)有关

查看以下Javascript

var queryStatic = document.querySelectorAll(".usun"); //non-live | static list
var queryLive = document.getElementsByTagName("div"); //live list
queryStatic将返回静态引用满足查询条件的节点的节点列表

如果要在使用queryStatic之外更改/修改此节点列表引用的节点或其元素的属性/字段/成员,则它将在queryStatic实例中表示

但是,您不能将一个新的元素/节点添加到DOM中,将满足查询并期望它位于该节点列表中

然而,queryList(一个HTML集合)将代表这两个方面,它是一个实时列表

关键是,下划线概念与方法签名几乎没有任何关系

编辑
但是,在jQuery的
.on()
方法中,支持将侦听器附加到父元素(如
文档
)并指定额外的查询条件。

所以您知道这一点……您的问题与实时非实时列表(集合)相关在javascript中

查看以下Javascript

var queryStatic = document.querySelectorAll(".usun"); //non-live | static list
var queryLive = document.getElementsByTagName("div"); //live list
queryStatic将返回静态引用满足查询条件的节点的节点列表

如果要在使用queryStatic之外更改/修改此节点列表引用的节点或其元素的属性/字段/成员,则它将在queryStatic实例中表示

但是,您不能将一个新的元素/节点添加到DOM中,将满足查询并期望它位于该节点列表中

然而,queryList(一个HTML集合)将代表这两个方面,它是一个实时列表

关键是,下划线概念与方法签名几乎没有任何关系

编辑
但是,对于jQuery的
.on()
方法,支持将侦听器附加到父元素(如
文档
)并指定额外的查询条件。

在执行
$(“.usun”)时读取。在(
)上,您将绑定到该给定点上存在的所有
“.usun”
元素。
$(此).on(“click”,“.usun”
实际上将事件绑定到
,并检查您是否单击了
”.usun“
。了解
最近的(“tr”)
读取时间
$(.usun”)。on(
)绑定到该给定点上存在的所有
.usun”
元素。
$(此)。on(“click”、.usun“
实际上将事件绑定到
,只需检查您是否单击了
“.uson”
。了解
最近的(“tr”)
为每个
.usun
元素附加多表单击处理程序:一个。为
文档
附加一个单击处理程序。为每个
附加多表单击处理程序:一个。usun
元素…为
文档
附加一个单击处理程序。在第二次检查中,尽管这个概念是相关的,但实际上它不是正确回答您的问题..正如@Alex指出的,事件使用
$(此)
被附加到
文档
。不是Html元素的集合或节点列表。在第二次审查中,尽管这个概念是相关的,但它实际上并不是您所问问题的正确答案。。正如@Alex指出的,使用
$的事件(此)
正在附加到
文档
。不是Html元素的集合或节点列表。