为什么';jQuery是否删除动态添加行的工作?
我不熟悉jQuery 你们知道为什么为什么';jQuery是否删除动态添加行的工作?,jquery,Jquery,我不熟悉jQuery 你们知道为什么.remove()对使用add按钮添加的行不起作用吗?它对已经存在的元素(如One)起作用 <html> <head> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> <script> $(doc
.remove()
对使用add
按钮添加的行不起作用吗?它对已经存在的元素(如One
)起作用
<html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
$('.more').click(function(){
html_frag='<li>XXX<input type="submit" value="Remove" class="testing" /></li>';
$('ul li:last').after(html_frag);
return false;
});
});
$(document).ready(function(){
$('.testing').click(function(){
$(this).remove();
return false;
});
});
</script>
</head>
<body>
<ul>
<li>
One
<input type="submit" value="Remove" class="testing" />
</li>
</ul>
<input type="submit" value="Add" class="more" />
</body>
</html>
$(文档).ready(函数(){
$('.more')。单击(函数(){
html_frag='XXX ';
$('ul li:last')。在(html_frag)之后;
返回false;
});
});
$(文档).ready(函数(){
$('.testing')。单击(函数(){
$(this.remove();
返回false;
});
});
-
一个
,因为绑定该处理程序时,新添加的元素在DOM上不存在。尝试使用以下委托事件
$(document).ready(function(){
$(document).on('click', '.testing', function(){
$(this).remove();
return false;
});
});
试试这个,它不起作用,因为您正在动态地创建元素,以便在jquery上或实时使用动态创建的元素
$("body").on("click", ".testing", function(event){
$(this).remove();
return false;
});
如果可能的话,使用比
文档
更严格的范围,以提高效率。@Brad Well不幸的是,他的html没有任何containerRight,为了他的利益,我说,如果他有其他东西可以附加处理程序,那会更好。一个相关的问题。比方说,我必须注意的事件与点击无关。假设事件是另一个节点(例如输入元素)的添加。那么如何在上使用?我理解,由于性能问题,不建议使用domandeinserted
等事件。在这种情况下,我应该做什么呢?好的,我看到有一些jQuery插件,比如livequery
,可以帮助实现这一点。这是通常的做法还是我走的方向不对?.live()
很久以前就被弃用了。我不推荐使用它。如果使用旧的jquery库,可能取决于用户使用的jquery库,而不是什么?你的建议是,有人“对jquery不熟悉”,并显然用它创建了第一个项目,那么就可以回去为这个项目获得一个2-3年的jquery版本,这是荒谬的。在任何情况下,都不建议使用不推荐使用的函数!如果出于某种原因,例如某个正在处理现有项目的人,您需要在帖子中提到该方法已被弃用。你没有,所以我添加了一条评论,提醒未来的读者。对不起,下次我会的