1

success要素を動的に作成し、Ajaxコールバックで 2 秒の遅延後にフェードアウトさせたいと考えています。

success: function(response){
    if(response == "success")
        $("#main").prepend("<div class='success'>...</div>");
    else
        $("#main").prepend("<div class='error'>"+response+"</div>");

    window.setTimeout(
        function(){
            $(".success, .error").fadeOut()
        }, 2000);
}

しかし、うまくいきません。

4

1 に答える 1

1

Ajax メソッドの前または後に他に何が起こっているのかはっきりしないので、次のアプローチを試すことができます。

success: function(response){
    var resultDiv = $('<div />', { text: response });
    if(response == "success")
        resultDiv.addClass('success').prependTo('#main');
    else
        resultDiv.addClass('error').prependTo('#main');

    setTimeout(function(){resultDiv.fadeOut()}, 2000);
}

これが機能することを証明しているように見える粗雑な JSFiddle をまとめました: http://jsfiddle.net/LA7xN/。私は明らかに実際の Ajax 呼び出しを使用しておらず、代わりに値を渡して応答をシミュレートすることを選択しています。

于 2012-07-12T11:05:14.460 に答える