Jquery 删除动态创建的div的最后一次出现
我有一个div,我希望能够将子元素添加到顶部,并从底部动态删除子元素。有点像一个rss阅读器。 父div不断填充新的子div。 有一个条件可以测试子项的数量,然后在最后一个子项达到所需的最大子项长度时删除它。 这是在setInterval连续的情况下完成的Jquery 删除动态创建的div的最后一次出现,jquery,setinterval,event-delegation,Jquery,Setinterval,Event Delegation,我有一个div,我希望能够将子元素添加到顶部,并从底部动态删除子元素。有点像一个rss阅读器。 父div不断填充新的子div。 有一个条件可以测试子项的数量,然后在最后一个子项达到所需的最大子项长度时删除它。 这是在setInterval连续的情况下完成的 setInterval(function(){ var newbox = "<div class='child animated bounceInDown'></div>" $(newbox).pre
setInterval(function(){
var newbox = "<div class='child animated bounceInDown'></div>"
$(newbox).prependTo('#container').hide().slideDown(500);
var dlength = $('.child').length;
console.log(dlength);
if (dlength >=5){
$(".child:last").fadeOut();
}
}, 2000);
目前,在我的代码中,我可以通过使用填充有父div的最大所需长度的计数器来删除最后一个子div
问题是它只在第一个间隔中删除最后一个div。
我将计数记录到控制台,并且可以看到计数增量,因此我的条件应该会触发
我的想法是,我的问题是由于没有事件授权。实际上,当我试图删除div时,它不在DOM中。也就是说,我不确定是否需要侦听父级上的事件或附加处理程序。
有什么想法吗
下面是一个小提琴的例子:
问题是您总是淡出DOM中的最后一个元素,而不是最后一个可见元素。就像我说的,你总是在淡化同一个元素 $.child:visible:last.fadeOut;它在JSFIDLE添加的可见选择器中工作 正如Anant所建议的,另一种选择是从DOM中删除元素,而不是将其淡出,这取决于您可能想要实现的目标。如果不需要将元素保留在DOM中,那么删除它可能是一种好的做法
$(".child:visible:last").fadeOut(400,function(){
$(this).remove();
});
更新了正确的fiddle链接^$'container.child'.eq$'container.child'.length-1.remove;检查一下谢谢!这正是我想要的。阿南特的答案很接近,但没有我试图实现的淡出。