Я использую следующий код, чтобы изменить содержание .elements
когда #select-element
значения изменяются:Как отображать динамически сгенерированные элементы с помощью slideDown()?
$("#select-element").on('change', function() {
var dtype = $("#select-element").val();
$.ajax({
type: 'GET',
url: '/?type='+dtype,
dataType: 'json',
success: function(result) {
for (var r in result) {
var row = ' \
<div class="row">result[r].name \
</div> \
';
$('.elements').prepend(row);
}
},
error: function (jqXHR, textStatus) {
},
beforeSend: function(){
$(".elements").slideUp(function() {
$(".elements").children().remove();
});
},
complete: function(){
$(".elements").slideDown();
}
});
});
Это хорошо работает, если я удалю slideUp()
функции. Но если он есть, то новый контент не отображается. Похоже, проблема связана с функцией slideDown()
, которая не хочет отображать динамически сгенерированный элемент.
Как это исправить?
Вы можете иметь условие гонки между обратным вызовом slideUp и завершением запроса Ajax – sahbeewah
Проверьте, '' fadeIn' и fadeOut' работает. Если это не так, я не думаю, что проблема не «slideDown». Если вы затухаете и работаете, вы можете попробовать сделать это с помощью css-переходов. с переполнением: скрытый и высота: 0 для слайдов и, например, высота: 200px; для slideDown. – Roy
@ Roy, 'fadeIn' тоже не работает. –