我试图用JQuery删除一个元素,但我仍然希望转换.hide函数。我提出了这个解决方案:
$("#box-"+likeid).hide('slow', function(){ $("#box-"+likeid).remove(); });
然而,在此之后,我想迭代一个索引很重要的项目列表(我使用.each)。所有这些项都具有相同的类,因此我使用该类迭代项并从中查找索引。
我发现,当我使用上述隐藏/删除解决方案时,该项目仍被计为带索引的项目。但是,当我只使用普通的.remove时,它不计算在内,它的行为与我想要的一样。
但回到前一点,我喜欢.hide转换。有没有解决的办法?谢谢。
编辑:
这是完整的Jquery函数:
$(".remove-item").click(function(event) {
event.preventDefault();
var id = $(this).find("i.fa-times").attr('id');
var likeid = id.replace( /^\D+/g, '');
var elem = $("#box-"+likeid).hide('slow', function() { $("#box-"+likeid).remove(); });
$('.spacer').remove();
$('.boxBg').not(elem).each(function() {
$(this).removeClass('last');
if (($(this).index() + 1) % 4 == 0){
$(this).addClass('last');
$('<div class="spacer"></div>').insertAfter($(this));
}
});
});
基本上,我希望每个第四个元素都有这个类&#34;最后&#34;这表示一个新行。当一个被删除时,我想更新它。但是,使用此功能时,不会将最后一个分配给正确的。这是一次性的,即使使用这种方式,你在下面分享。
答案 0 :(得分:1)
这是因为回调函数后来执行了600ms(慢),您可以将each
循环移动到回调中,或者使用{{1}从集合中排除元素方法:
not