用JQuery删除一个dom节点,我想先显示动画,然后删除,结果动画没显示。直接删除了。

代码如下:
$("#objid").slideUp(1000).remove();//这样不显示动画
$("#objid").slideUp(1000).delay(1000).remove();//一样不显示动画
请指教如何先显示动画再删除。

要使用callback函数,像这样:
$("#objid").slideUp(1000,function(){ $("#objid").remove(); })
下面是我自己测试的代码:
<html>
<body>
<div id="test" style="width:500px; height:500px; border:1px solid red;"></div>
<script type="text/javascript" src="inc/jquery.v1.3.js"></script>
<script type="text/javascript">
$(function(){
$("#test").slideUp(5000,function(){$("#test").remove();});
})
</script>
</body>
</html>追问

事实上,在第一个人回答之前我已经解决了,对方代码是写错了,但是他的思路是正确的,我代码是这样写的,$(this).slideUp(500,function(){ $(this).remove(); });

参考资料:http://www.w3school.com.cn/jquery/jquery_callback.asp

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-23
看过jquery源代码后你就不会这么用了
正确用法如下:
$("#objid”).slideUp(1000).delay(300).queue(function() {
$("#objid“).remove();
});
------------------------------------------------------------------
我服了
楼主居然采用错误答案!!!!追问

事实上,在第一个人回答之前我已经解决了,对方代码是写错了,但是他的思路是正确的,我代码是这样写的,$(this).slideUp(500,function(){ $(this).remove(); });

第2个回答  2012-05-23
$("#objid").slideUp(1000).(function(){
$("#objid").remove();
})
试试这个本回答被提问者采纳