JQuery: если div видимый

Я использую JS как способ изменения содержимого SPA, который я создаю. Когда я нажимаю кнопку, чтобы изменить содержимое, изменение html:

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

:

<div id="selectDiv" style>

Теперь часть моего SPA имеет div, который содержит несколько флажков, каждый из которых представляет div, и поэтому, когда я нажимаю кнопку отправки, следующий div, который должен отображаться, будет первым элементом в списке флажков, который был выбран.

Мне интересно, есть ли способ в JQuery, чтобы код "почти обнаружил", который теперь виден. что-то вроде этого:

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

Любые предложения?

Ответы

Ответ 1

Вы можете использовать .is(':visible')

Выбирает все видимые элементы.

Например:

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

Кроме того, вы можете получить div, который отображается:

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

Пример в реальном времени:

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>