2016-11-07 3 views
18

Ich benutze JS als eine Möglichkeit, den Inhalt eines SPA, den ich erstelle, zu ändern. Wenn ich eine Taste drücken, um den Inhalt ändert sich die html ändern hieraus:JQuery: Wenn div sichtbar ist

<div id="selectDiv" style="display: none;"> 

dazu:

<div id="selectDiv" style> 

Jetzt ein div Teil meiner SPA hat, die eine Reihe von Kontrollkästchen enthält, die jeweils eine repräsentiere div und so, wenn ich den Submit-Button drücke, wird das nächste div, das angezeigt werden soll, das erste Element in der Checkbox-Liste sein, das ausgewählt wurde.

Ich frage mich, ob es einen Weg in JQuery für den Code zu "fast erkennen", welche div ist jetzt sichtbar ist. etwas wie dieses:

if($('#selectDiv').isVisible()){ 
    //JS code associated with this div. 
} 

Irgendwelche Vorschläge?

+0

Könnten Sie nicht mit der '.hasClass' Funktion herumhauen, um so etwas zu tun? Prüfen Sie, ob ein Element eine bestimmte Klasse hat und gehen Sie dann von dort aus? –

+0

'if (document.getElementById (" selectDiv "). Style.display! ==" none ") {...}' –

+0

Was meinen Sie mit "fast detect"? Sie könnten $ elem.is (": visible") verwenden, um zu bestimmen, ob das Element sichtbar ist! – Gacci

Antwort

28

können Sie .is(':visible') verwenden

alle Elemente Wählt die sichtbar sind.

Zum Beispiel:

if($('#selectDiv').is(':visible')){ 

Sie können aber auch die div erhalten, die durch sichtbar ist:

$('div:visible').callYourFunction(); 

anschauliches Beispiel:

console.log($('#selectDiv').is(':visible')); 
 
console.log($('#visibleDiv').is(':visible'));
#selectDiv { 
 
    display: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="selectDiv"></div> 
 
<div id="visibleDiv"></div>

+1

Hey, da bestreite ich nicht die Richtigkeit dieser Antwort, aber bitte überlege, ob du für Fragen wie diese einen Vorschlag machen oder abstimmen könntest. Es gibt bereits einige ziemlich umfassende Antworten zu Stack Overflow, auf die wir stattdessen hinweisen können. – Serlite

+0

Könnte ich so etwas tun? $ (document) .ready (function() { if ($ ('# selectDiv'). ist (': visible')) { // JS-Code für dieses div. } }); –

+0

Ja, siehe mein Update. –

Verwandte Themen