为什么我的jQuery fadeOut / remove摆脱了父DOM元素?

时间:2009-07-17 11:30:24

标签: jquery jquery-ui

我有一个项目列表,例如:

<li class="ui-state-default" ><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>test <a href="#" title="Delete" class="itemDelete">x</a></li>

$('.itemDelete').live("click", function() {

                $(this).parent().remove();
            });

一切都好。如果我将其更改为

$(this).parent().fadeOut("slow", function() { $(this).parent().remove(); });

它似乎删除了<li>确定,但也删除了它上面的<li>。我已经尝试运行淡入淡出,然后在单独的行上删除,但这对用户来说就像它刚刚完成删除而不是淡入淡出。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

这是this所指的问题 - 在回调中,this是你的褪色元素。你想要:

$(this).parent().fadeOut("slow", function() { $(this).remove(); });

答案 1 :(得分:2)

您正在移除父母的父母。将其更改为:

 $(this).parent().fadeOut("slow", function() { $(this).remove(); });