2016-12-29 6 views
0

Ich versuche herauszufinden, wie Sie alle siblings Ziel und verblassen sie aus, bevor Sie das Element, das ins Visier genommen wird.jQuery fadeOut Geschwister wenn sichtbar

$('#MyDiv').siblings(':visible').not('h2').fadeOut('slow', function() { 
    $('#MyDiv').fadeIn('slow'); 
}); 

Der :visible Wähler nicht funktioniert, aber in der Theorie sollte es, nicht wahr? Das Problem ist, dass das Ereignis complete sofort ausgeführt wird, da einige Geschwister bereits ausgeblendet sind.

Dies sollte eine einfache Lösung für jemanden sein ... Ich denke, ich habe dies zu lange anstarren und mir fehlt etwas einfaches.

+0

funktioniert gut für mich - http://jsbin.com/zutusuwono/edit?html,css,js,output –

+0

Das Problem ist, dass einige Geschwister sind und einige sind nicht sichtbar ... also für diejenigen, die nicht sind, wird das "vollständige" sofort ausgeführt. – dcolumbus

+0

Könnten Sie Ihren HTML-Code posten, sehe ich kein Problem> https://jsfiddle.net/vxvfzo1s/1/ – sinisake

Antwort

0

OK - Vielleicht einen anderen Ansatz versuchen? In diesem Fall wird "vollständig" nur einmal ausgelöst.

$('#div3').fadeOut(500); 
 
$('#div1').fadeOut(500); 
 

 
setTimeout(function() { 
 
    $('#div1').siblings(':visible').not('h2') 
 
    .fadeOut(500).promise().done(
 
     function() { 
 
     $('#div1').fadeIn(); 
 
     } 
 
    ); 
 
}, 1500);
<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    <meta charset="utf-8"> 
 
    <meta name="viewport" content="width=device-width"> 
 
    <title>JS Bin</title> 
 
</head> 
 

 
<body> 
 

 
    <div id="div1"> 
 
    <p>Div1</p> 
 
    </div> 
 
    <div id="div2"> 
 
    <p>Div2</p> 
 
    </div> 
 
    <h2>H2</h2> 
 
    <div id="div3"> 
 
    <p>Div3</p> 
 
    </div> 
 
    <div id="div4"> 
 
    <p>Div4</p> 
 
    </div> 
 

 
    <script src="https://code.jquery.com/jquery-2.2.4.js"></script> 
 
</body> 
 

 
</html>

+0

Das Problem ist, dass einige Geschwister sind und einige sind nicht sichtbar ... so, für diejenigen, die nicht sind, wird das "komplette" sofort ausgeführt. – dcolumbus

+0

OK - tut mir leid, dass ich das anfangs vermisst habe. Vielleicht funktioniert die obige Vorgehensweise für Sie ... in meinem Test wird nur einmal ausgelöst. – abigperson