0

div要素をフェードアウトし、その中のテキストを変更して、フェードインし直そうとしています...

私が持っているコードはここにあります-

<script>
        $(document).ready(function(){
            $("#l2").click(function(event){
                event.preventDefault();
                $("#1").fadeOut();
                $("#1").replaceWith('Testing');
                $("#1").fadeIn();
            });
        });
    </script>

l2をクリックすると、fadeOut div id 1が置き換えられ、フェードインします...しかし、失敗します。

4

4 に答える 4

3

DOM要素を操作するために.text、または.htmlではなくを使用します。.replaceWithまた、キューを操作.text.htmlないため、それらをチェーンすることはできません。コールバックを使用する必要があります。

$("#1").fadeOut(function () {
   $(this).text('Testing').fadeIn();
});
于 2012-10-04T21:21:11.097 に答える
1

目標を達成するには、コールバックを使用する必要があります。

$("#1").fadeOut(500, function(){
     $("#1").html('Testing');
     $("#1").fadeIn();
});

パラメータとして渡された関数は、fadeOutが完了すると実行されます。

于 2012-10-04T21:21:14.500 に答える
0

フェードアウトコールバックを使用するだけです。これが簡単なフィドルですhttp://jsfiddle.net/M5PnY/2/ テキストをクリックしてください

編集 - - -

html()に置き換えて変更しましたが、以前は表示されませんでした

$(document).ready(function(){
    $("#1").click(function(event){
        event.preventDefault();
        $("#1").fadeOut(function(event){
            $("#1").html('Testing').fadeIn();
        });
    });
});​
于 2012-10-04T21:20:58.613 に答える
0

2行目では、要素#1を新しいものに置き換えた後、再びフェードインすることはできません。

$("#1").replaceWith('Testing');

div#1の結果は、テキストTestingに置き換えられます

したがって、代わりに次を使用する必要があります:

$("#1").html('Testing');
于 2012-10-04T21:22:23.290 に答える