Почему динамически созданный элемент не исчезает?
Я динамически создал элемент и хочу, чтобы он исчез через 2 секунды после задержки в Ajax success
Перезвоните.
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);
}
Но это не работает.
2 ответа
Поскольку мне не ясно, что еще может происходить до или после ваших методов 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, выбрав вместо этого просто передать значение для имитации ответа.
Я считаю, что вы можете просто позвонить
window.setTimeout(
function(){
$(".success, .error").fadeOut()
}, 2000);
как это:
setTimeout('$(".success, .error").fadeOut()',2000);
может быть неправильно, хотя jsfiddles вниз, и я ленивый / собираюсь спать