2010-04-03 38 views
1

当你点击删除按钮时,在该li上运行一个很好的效果,并通过使用jquery的.remove()函数将其删除。 由于某种原因,如果我尝试.size()父ul它只是仍然说当页面加载时那里的列表项的数量?在某些li的.remove()之后,计算一个ul中的li的数量?

更新

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; 

回答

0

效果基本show不会删除的元素。它实际上改变了它的高度,然后将其设置为无。

使用回调删除元素。

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

这段代码

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

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

因此,执行回调时,$(this)window(或文件??指正PLZ)

你可以把一个回调到slideUp函数调用,这样就删除元素slideUp已终止:

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