web-dev-qa-db-fra.com

JQuery: si div est visible

J'utilise JS pour modifier le contenu d'un SPA que je crée. Lorsque j'appuie sur un bouton pour modifier le contenu, le code HTML change à partir de ceci:

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

pour ça:

<div id="selectDiv" style>

Désormais, une partie de mon SPA contient un div qui contient un certain nombre de cases à cocher, chacune représentant un div. Ainsi, lorsque j'appuie sur le bouton d'envoi, le prochain div à afficher sera le premier élément de la liste à cocher sélectionnée.

Je me demande s'il existe un moyen dans JQuery pour que le code "détecte presque" quel div est maintenant visible. quelque chose comme ça:

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

Aucune suggestion?

54
Mark

Vous pouvez utiliser .is(':visible')

Sélectionne tous les éléments visibles.

Par exemple:

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

En outre, vous pouvez obtenir le div qui est visible par:

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

Exemple en direct:

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>
82
Mosh Feu