4

divを表示し、数秒後に削除したいと思います。とても簡単です。だから私のhtmlには次のものがあります:<div id="msg"></div>

そして私はこの関数を持っています:

function showWarning(text) {
            $('<div>'+text+'</div>').appendTo('#msg').hide().fadeIn('fast').delay(1000).queue(function() {
                $(this).fadeOut();
        });
    }

これを機能させる方法が見つかりません。fadeOut()が呼び出されますが、画面には何も表示されません。変更すればfadeOut()問題hide()なく動作します。しかし...試してみるhide(500)とうまくいきません。

これは些細なことだと思います-初心者の間違い-しかし私はそれを見つけることができません。

ありがとう

4

4 に答える 4

3

は実行を終了してはfadeIn()いけません。代わりに、fadeOut を実行する前にコールバック関数を使用してください。

$('<div>'+text+'</div>').appendTo('#msg').hide().fadeIn('fast', function () {
    $(this).fadeOut();
});
于 2012-10-22T19:27:58.147 に答える
2
function showWarning(text) {
    $('<div />', {text: text}).fadeIn('fast', function() {
        $(this).delay(1000).fadeOut(600);
    }).appendTo('#msg');
}

フィドル

于 2012-10-22T19:32:43.010 に答える
1

そのように:http://jsfiddle.net/b7EV8/

function showWarning(text) {
    $('<div id="msgtext">' + text + '</div>').appendTo('#msg').hide().fadeIn('fast', function() {
        $('#msgtext').delay(1000).fadeOut();
    });
}

showWarning('hello')
于 2012-10-22T19:30:01.457 に答える
1
function showWarning(text) {
  $('<div>').text(text).appendTo('#msg').hide().fadeTo(400,1,function(){
      $(this).delay(1000).fadeOut();
  });
}

デモ

于 2012-10-22T19:40:56.283 に答える