4

私は次のことを達成しようとしています:1。クリックすると、id = "fader"フェードアウトのdivがあります2.フェーダーのHtmlを新しいhtmlに置き換えます(この新しいHTMLはブラウザーの折り畳みの下に表示されます)3。新しいHTMLをアニメーション化して指定された場所までスライドします

ステップ1と2は機能していますが、ステップ3は機能していません。その理由について、私は困惑しています。

これがjavascriptです:

$("#fader").fadeOut(1000, function() {
  $(this).replaceWith('<div id=\"fader\" style=\"margin-top:-500px;width:500px;height:400px;border:1px solid black;\">new div</div>', function() {
    $("#fader").animate({marginTop: "500px"});
  });
});

divがアニメーション化されない理由についての考えは、事前に感謝します。

4

1 に答える 1

5

あなたの場合、.replaceWith()にはコールバックがなく、アニメーションとは異なる署名があります。

代わりにこれを試してください:

$("#fader").fadeOut(1000, function() {
  $(this).replaceWith('<div id="fader" style="margin-top:-500px;width:500px;height:400px;border:1px solid black;">new div</div>');
  $("#fader").animate({marginTop: "500px"});
});

これをチェーンすることはできず、作成したばかりのオブジェクトではなく、元の.replaceWith()オブジェクトを返すことに注意してください。

于 2010-03-17T20:19:22.350 に答える