2016-10-02 2 views
-1

Ich möchte ein Containerelement mit Klasse page_wrapper ausblenden. Dann möchte ich nur ein Element in diesem Container mit der ID infinite_math_container anzeigen.jQuery: Container ausblenden, dann Element in diesem Container anzeigen

Mein Code ...

$('.page_wrapper').hide(); 
$('#infinite_math_container').show().delay(200); 

Problem: Die $('.page_wrapper').hide(); funktioniert gut, aber die $('#infinite_math_container').show().delay(200); zeigt nicht wirklich.

Gedanken?

+5

Es wird nicht angezeigt, weil Sie hide auf dem Wrapper aufgerufen haben, was bedeutet, dass es egal ist, was Sie darin anzeigen/ausblenden, da der oberste Wrapper ausgeblendet ist. Hier ist die ähnliche Frage: http://stackoverflow.com/questions/5521387/show-child-div-within-hidden-parent-div –

+0

Wie @ ŁukaszTrzewik sagte, ist der Haupt-Wrapper versteckt. So kann das Kind nicht angezeigt werden. Gibt es einen Grund, warum du "page_wrapper" verstecken willst? –

+0

@OumarDiarra: Das Ziel hier ist es, '# infinite_math_container' als das einzige Ding auf der Seite zu zeigen. – gtilflm

Antwort

1

Wie @ sagte ŁukaszTrzewik. Wenn das übergeordnete Element eines Elements ausgeblendet wird und show() aufgerufen wird, hat dies keine Auswirkungen.

Um dies zu beheben, können Sie so etwas tun:

$(".page_wrapper").children().not("#infinite_math_container"‌​).hide(); 

Diese alle Elemente Kind von .page_wrapper außer #infinite_math_container wird verstecken.

OR:

$(".page_wrapper").children().hide().find("#infinite_math_container"‌​).delay(200).show(); 

, die alle untergeordneten Elemente .page_wrapper verbergen und das Kind #infinite_math_container nach einer Verzögerung von 200 Millisekunden zeigen. Diese beiden Beispiele funktionieren nur, wenn das Element #infinite_math_container direkt von .page_wrapper stammt.

0

Probieren Sie es fadeOut verwendet, die einen Rückruf erlaubt:

$('.page_wrapper').fadeOut(0, function() { 
    $('#infinite_math_container').show(); 
}); 

Sie können die Dokumentation Verwendung hide() als Rückruf, aber es ist nur eine Präferenz according.

$('.page_wrapper').hide(0, function() { 
    $('#infinite_math_container').show(); 
}); 

Ein anderer Weg ist die setTimeout Funktion:

$('.page_wrapper').hide(); 
setTimeout(function(){ 
    $('#infinite_math_container').show(); 
}, 2000); 
+0

Funktioniert nicht für mich. – gtilflm

+0

Ihr 2. Versuch funktioniert auch nicht. – gtilflm

+0

Was funktioniert nicht? die verspätete Show? – developernator

Verwandte Themen