3

これに関するSOにはいくつかのq&aがありますが、私の問題に対処するものは見つかりませんでした。そして、私はこれに困惑しています。これに対する利用可能な回答がわかっている場合は、リンクにリダイレクトしてください。

DIV #posts_insert私のページには、 Ajax を介して新しい投稿が挿入される空のページがあります。

    $.ajax({
        url: 'chat/posts_submit/' + <?php echo $page_id; ?>,
        type: 'POST',
        data: $('#posts_form').serialize(),
        dataType: 'html',
        success: function(html) {
            $('#posts_insert').replaceWith(html);
        }
    });

その新しい投稿をフェードインして、 に置き換えて#posts_insertください。以前にsuccess使用して何度か繰り返してみましたが、これを機能させることはできません。hide()fadeIn

これを解決する方法はありますか?前もって感謝します。

4

3 に答える 3

11

どうですか:

$("#posts_insert").replaceWith(function() {
    return $(html).hide().fadeIn();
});

これが実際の例です:http://jsfiddle.net/andrewwhitaker/jTLn5/

于 2011-06-12T19:01:16.837 に答える
0

このようなもの?

$.ajax({
    url: 'chat/posts_submit/' + <?php echo $page_id; ?>,
    type: 'POST',
    data: $('#posts_form').serialize(),
    dataType: 'html',
    success: function(html) {
        var newContent = $(html);
        $('#posts_insert').fadeOut(function() {
            $(this).replaceWith(newContent.hide());
            newContent.fadeIn();
        });
    }
});
于 2011-06-12T18:53:30.930 に答える
-1

あなたが試すことができます:

success: function(html) {
   var $container = $('#posts_insert').parent();
   $container.fadeOut('fast', function() {
      $('#posts_insert').replaceWith(html);
      $container.fadeIn();
   });
}

あなたが求めている効果が得られるかもしれません。

編集: (#posts_insert) の周りにコンテナーを配置し、それをフェードアウトし、replaceWith() を入れて、コンテナーにフェードインしてみませんか?

于 2011-06-12T18:47:26.160 に答える