Ich verwende den folgenden Code, um den Inhalt von .elements
zu ändern, wenn #select-element
Wert geändert wird:Wie dynamisch erzeugte Elemente mit slideDown() angezeigt werden?
$("#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();
}
});
});
Es funktioniert gut, wenn ich slideUp()
Funktionen entfernen. Aber wenn es dort ist, dann wird neuer Inhalt nicht angezeigt. Sieht aus wie das Problem ist mit slideDown()
Funktion, die nicht dynamisch generierte Element angezeigt werden soll.
Wie kann ich es beheben?
Sie eine Race Condition zwischen dem slideUp Rückruf haben kann und die Fertigstellung der Ajax-Request – sahbeewah
Überprüfen Sie, ob 'fadeIn' und' fadeOut' arbeitet. Wenn nicht, dann glaube ich nicht, dass das Problem nicht "slideDown" ist. Wenn Ein- und Ausblenden funktioniert, können Sie es mit CSS-Übergängen versuchen. mit Überlauf: versteckt und Höhe: 0 für SlideUp, und z.B. Höhe: 200px; für slideDown. – Roy
@Roy, 'fadeIn' funktioniert auch nicht. –