Я создаю собственную систему лайтбокса (потому что мне не нравится, как кто-либо из них там справляется), и мне нужен способ определить, открыт ли лайтбокс или нет.
То, что я хотел бы сделать, это:
if (getElementById("lb" + ##).clientHeight > 0) {
// do nothing
} else {
// execute code
}
Где ## представляет любую комбинацию любых двух чисел, так что если у меня есть
<div class="lightbox" id="lb01">
<!-- empty -->
</div>
<div class="lightbox" id="lb02">
<!-- empty -->
</div>
Я могу определить, показывает ли один из них, и если нет, открыть другой.
РЕДАКТИРОВАТЬ: Я действительно предпочел бы не использовать jQuery, и кажется, что это должно быть намного проще, чем некоторые ответы, которые я получаю. Я готов что-нибудь изменить, чтобы это работало, ни один из этих классов или идентификаторов не является окончательным.
РЕДАКТИРОВАТЬ 2: выяснил гораздо более простой способ сделать это. Я установил глобальный var lb = 0;
, а затем обнаружил значение этой переменной, если оно равно 0, он запускает функцию и изменяет значение на 1. Когда я запускаю функцию закрытия, он меняет значение обратно на 0. Это препятствует тому, чтобы у него было больше одного открытия, без всего этого сумасшедшего материала JS, который вы, ребята, даете мне.
По сути, код теперь выглядит следующим образом и работает точно так, как я хотел.
var lb = 0;
function lightbox(id) {
if (lb == 0) {
lb = 1;
} else {
// do nothing
}
}
function hideme(id) {
lb = 0;
}