0

そこで、ポップアップでクリックされた各リンクからの特定の情報を含むポップアップ コードをいくつか作成しました。閉じると、ポップアップ内のコンテンツdivが削除されます。これが私のコードです:

var $content = $('#popupcontent');
var $window = $('#popupwindow');
$('.open').click(function(){
    //alert('runnning');
    var a = $(this).contents('span');
    $content.append(a);
    $window.fadeIn(300);
});
$('.close').click(function(){
    //alert('running');
    var a = $content.contents('span');
    $window.fadeOut(300);
    $('#popupcontent span').remove();
});

私の問題は、フェードアウトする前に何らかの形でコンテンツを削除しているため、視聴者はポップアップコンテナが空白になることを確認できることです. 最初に確実にフェードアウトしてからコンテンツを削除するようにするにはどうすればよいですか? これを説明する Jsfiddle を次に示します: http://jsfiddle.net/kAdQK/4/

4

3 に答える 3

4

完了したら要素を削除するために、フェードアウト メソッドに完全なコールバック引数を利用することができますfadeout。現在のコードでは、フェードアウト アニメーションが開始され、フェードアウト アニメーションが完了するのを待たずにすぐにコンテンツが削除されるため、現在表示されている視覚効果が得られます。コールバックを使用して、アニメーションが完了したら実行されるようにします。

$window.fadeOut(300, function () {
        $('#popupcontent span').remove();
    });

構文

.fadeOut( [デュレーション] [, 完了] )

フィドル

于 2013-06-15T07:53:57.930 に答える
2

アニメーション完了を使用して、フェードアウトが終了した後に要素を削除できます。

次のコードは、#popupcontentフェードアウト後にのみ削除されるようにします。

$window.fadeOut('slow', function() {
    $('#popupcontent span').remove();
  });
于 2013-06-15T07:54:25.240 に答える
1

setTimeout(); を使用するだけです。

$window.fadeOut(300);
setTimeout(function(){
    $('#popupcontent span').remove();},2000);

例はこちら

于 2013-06-15T07:54:56.820 に答える