Javascript 在新插入的变量块中单击关闭按钮时没有发生任何事情
inserAfter工作正常,但我也想执行移除。单击具有closequest id的按钮时,不会发生任何事情,甚至不会出现警报消息Javascript 在新插入的变量块中单击关闭按钮时没有发生任何事情,javascript,jquery,html,Javascript,Jquery,Html,inserAfter工作正常,但我也想执行移除。单击具有closequest id的按钮时,不会发生任何事情,甚至不会出现警报消息 //用于添加问题和注释 var qBlock='关闭'; $(“#添加问题”)。在(“单击”,函数(){ $(qBlock).insertAfter(“.qandaBlock”); }); $(文档).ready(函数(){ $(“#closequest”)。在(“单击”,函数(){ 警报(“正常”); $('qblock')。删除('newqandaBlock'
//用于添加问题和注释
var qBlock='关闭';
$(“#添加问题”)。在(“单击”,函数(){
$(qBlock).insertAfter(“.qandaBlock”);
});
$(文档).ready(函数(){
$(“#closequest”)。在(“单击”,函数(){
警报(“正常”);
$('qblock')。删除('newqandaBlock');
});
}); < /脚本>
`
重置
再补充一个问题
您应该如下所示,以便事件处理程序能够处理动态添加的元素
除此之外,不要在动态注入的模板中使用id
,而是使用类名,否则会使HTML无效。最后,应保留对添加块的引用:
//用于添加问题和注释
var qBlock='关闭';
$(文档).ready(函数(){
var最新区块;
$(“#添加问题”)。在(“单击”,函数(){
latestBlock=$(qBlock).insertAfter(“.qandaBlock”);
});
$(文档)。在(“单击”、“.closequest”上,函数(){
警报(“正常”);
latestBlock.remove();
});
});代码>
`
重置
再补充一个问题
$('qblock')无效。一个有效的HTML元素,这将不起作用,请不要忘记“.”或“#”。
使用类似$('.newqandaBlock').remove()的方法来删除该类。这里的问题是,动态添加的元素必须告诉jQuery它们存在。早些时候,我们使用的是live
,但现在。关于授权。它表示查找此元素或其子元素上发生的所有事件,即您可以将其范围限定到特定的子元素。因此,选择存在的最接近的父对象,而不是正文或文档
此外,id必须是唯一的,因此在这种情况下不能使用id,而应使用类
在关闭主体之前放置脚本标记
var qBlock='关闭';
$(“#添加问题”)。在(“单击”,函数(){
$(qBlock).insertAfter(“.qandaBlock”);
});
$(“#resetblock”)。在(“单击“,”.closequest',function(){
警报(“正常”);
$(this).closest(“.newqandaBlock”).remove();
});代码>
`
重置
再补充一个问题
$('qblock')。删除('newqandaBlock');-qblock周围应该有倒逗号吗?我不太明白qblock是什么在动态事件处理中使用类而不是id的技巧和用法在动态事件处理中很好地使用它