0

liリストに追加された後、いくつかの要素でフェードインするのに問題があります。

varhtmlにはリストアイテムが含まれています。

$(html).hide().appendTo('#thelist').fadeIn();

フェードインは、単一のli要素がロードされている場合に機能しますが、複数のliがある場合、jQueryはフェードインはもちろん何も挿入しません。

誰かが修正を提案できますか?

編集1:

例-リストは私のulであり、非表示ではありません。

<ul id="thelist">
   <li>entry1</li>
   <li>entry2</li>
   <li>entry3</li>
</ul>

編集2:リストは上記のようにHTMLに存在し、jQueryはフェードインしたい追加のliを追加します。

編集3: htmlには、記事の内容を含む約5つのliを表示するhtmlを含むjQueryajax呼び出しが含まれています。フェードインやアニメーションを使用しない場合は、ulに正しく追加されます。フェードインを追加すると、要素がulに追加されますが、フェードインは行われません。

編集4:これがロード関数です:

 $(function() {
     $('.more').live('click',function() {
     var element = $(this);
     var msg = element.attr('id');
     $('#morebutton').html('<p><em>Loading Articles.</em></p>');
     $.ajax({
         type: 'POST',
         url: 'more.asp',
         data: 'lastmsg=' + msg,
         cache: false,
         success: function(html){
             $('#morebutton').remove();
             $(html).hide().appendTo('#thelist').fadeIn();
         }
     });
     });
 });

解決:

変更することでフェードインしました:

 $(html).hide().appendTo('#thelist').fadeIn();

 var item = $(html).fadeIn();
 $('#thelist').append(item);

jQueryが特定の順序でチェーンする方法と関係があるようです。

4

3 に答える 3

0

後に使用してみてください

$(html).hide().after('#thelist').fadeIn();
于 2012-01-24T02:03:44.000 に答える
0

確かではありませんが、このようなものが欲しいかもしれません

$('#thelist').fadeOut('fast',function(){$('#thelist').append(html).fadeIn()});
于 2012-01-24T02:57:06.590 に答える
0

これは私にとってはうまくいきます。リスト アイテムとリストが存在することを確認します。ID のタイプミスをチェックします。

http://jsfiddle.net/gftdz/1/

于 2012-01-24T02:17:40.193 に答える