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元素的集合或节点列表。