1

我已经动态创建了一个元素,并希望它在 Ajaxsuccess回调中延迟 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 回答