3

私は2つのULを持っています。

<ul id="one">
  <li>
  <li>
<ul>
<div id="div_for_second_UL">
  <ul>
   <li>
  </ul>
</div>

最初に、各LIにはボタンがあり、クリックするとLIが削除され、下のLIが1スペース上にぶつかって、ギャップが埋められます。正常に動作します。ただし、クリックしたLIを同時に次のULの一番上に追加して、一番下のリストの最初の項目になるようにします。今、私はこれを次のように試しています:

        li.fadeOut(500, function() {$(li).remove(); });
        li.insertBefore('#div_for_second_UL');

また、insertBeforeの代わりにprependToを使用してみました。そして、2番目のULにIDを追加し、それをinsertBeforeの引数として使用してみました。それぞれの結果は同じです。

-LIが消え、同じコンテンツに置き換えられますが、スタイルは設定されていません-おそらくfadeOutエフェクトが終了していないため、新しいコンテンツはフェードアウトします。

どこが間違っているのですか?

ありがとう...

4

2 に答える 2

4

これを試してみてください:

li.fadeOut(500, function() {
     li.prependTo('#div_for_second_UL ul').fadeIn(); 
});

http://jsfiddle.net/Nf84m/1/

于 2010-03-10T18:29:47.187 に答える
3

うん。要素のクローンを作成しなかったため、アニメーションが終了すると要素は削除されます。そのアクションの同期を維持するには、アニメーションコールバックで先頭に追加を実行する必要があります。

これを試して:

li.fadeOut(500, function() {li.prependTo('#div_for_second_ul ul');});
于 2010-03-10T18:31:58.133 に答える