2012-05-10 6 views
7

Was ist ein guter Weg zum Ausblenden der Inhalt eines div, aber halten Sie die div bereit für neuen Inhalt?Fadeout + leeren ein div, und fügen Sie dann neuen Inhalt in

Mit

$('#info').html('').fadeOut(500); 
or 
$('#info').fadeOut(500).html('').show(); 

Der div Inhalt verschwindet einfach, und neue Inhalte nicht angezeigt

Mit

$('#info').fadeOut(500); 

Die div verblasst, wie es sollte, aber jede neue Inhalte nicht anzeigen

Antwort

14
$('#info').fadeOut(500, function() { 
    $(this).empty().show(); 
}); 
+6

+1 für die Verwendung von 'empty()' anstelle von 'html ('')' da das ist, wofür es da ist. – Madbreaks

+0

Schön, etwas neues zu lernen;) – mowgli

+0

Was wäre die Methode, um Inhalt auf ein div zu setzen und es dann einzublenden? EDIT: Ah hab es geschafft: $ ('# info'). Hide(). Html ('neuer Inhalt'). FadeIn (200); Ist das der beste Weg? – mowgli

2

Verwenden Sie den Rückruf von fadeOut:

$('#info').fadeOut(500, function() { 
    $('#info').html("New Content").show(); 
}); 
+1

Sie können '$ (this)' verwenden, anstatt das Element erneut zu suchen. :) –

+0

Es funktioniert. Aber html ("Neuer Inhalt") sollte html sein ("") – mowgli

5
$('#info').fadeOut(500, function() { 
    $(this).html('').show(); 
}); 

warten, bis die div es vor emtying ausgeblendet wird!