2009-07-17 2 views
1

私は、例えば項目のリストを持っている:私のjQuery fadeOut/removeが親のDOM要素を取り除くのはなぜですか?

<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(); 
      }); 

すべてがOKです。私は

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

に変更した場合は、[OK] <li>を取り除くように見えるだけでなく、それ以上の<li>。私はフェードを実行してから別の行で削除しようとしましたが、それは単にフェードではなく削除されたようにユーザーに表示されます。

アイデア?

答えて

2

thisがコールバックで—を指すことの問題です。thisは退屈な要素です。あなたがしたい:

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

ありがとう、私は退屈されているオブジェクトがコールバックでこれと仮定しますか? – Jon

+0

@ジョン:はい、そうです。 – Blixt

2

親の親を削除します。これを次のように変更してください:

$(this).parent().fadeOut("slow", function() { $(this).remove(); }); 
関連する問題