Почему мой jQuery fadeOut / remove избавляется от родительского элемента DOM? - PullRequest
1 голос
/ 17 июля 2009

У меня есть список предметов, например:

<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> ok, но также <li> над ним. Я попытался запустить затемнение, а затем удаление в отдельных строках, но пользователю это показалось, будто он только что сделал удаление, а не исчезновение.

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 17 июля 2009

Вы удаляете родителя родителя. Измените его на:

 $(this).parent().fadeOut("slow", function() { $(this).remove(); });
2 голосов
/ 17 июля 2009

Это вопрос того, что this относится к & mdash; в обратном вызове this - ваш блеклый элемент. Вы хотите:

$(this).parent().fadeOut("slow", function() { $(this).remove(); });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...