当你点击删除按钮时,会对该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;
答案 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();});