在一些li有.remove()之后计算一个ul中的li的数量?

时间:2010-04-03 09:12:07

标签: jquery

当你点击删除按钮时,会对该li运行一个很好的效果,并使用jquery的.remove()函数删除它。 出于某种原因,如果我尝试在父级ul上使用.size(),它仍然会显示页面加载时列表项的数量?

更新

var href = $(this).attr("href");
$(this).children(".deleteButton").fadeOut("fast");
$(this).parent("li").slideUp(300);
setTimeout("$(this).parent('li').remove();",300);
setTimeout("alert( $('ul.list').children().size());",300)
$.get(href);
return false;

2 个答案:

答案 0 :(得分:1)

这段代码

setTimeout("$(this).parent('li').remove();",300);`

在概念上是错误的 您希望$(this)处于关闭状态,但实际上是将字符串传递给setTimeout回调。

所以,当执行回调时,$(this)引用window(或文件??纠正我plz)

您可以对您调用的slideUp函数进行回调,以便在slideUp终止之后删除该元素

$(this).parent("li").slideUp(300,  function (){ $(this).remove();});

答案 1 :(得分:0)

SlideUp不会删除该元素。它实际上改变了它的高度,然后将它的显示设置为无。

使用回调删除元素。

$(this).parent("li").slideUp(300,  function (){ $(this).remove();});