Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   блок событий для открытого окна (https://javascript.ru/forum/dom-window/65666-blok-sobytijj-dlya-otkrytogo-okna.html)

новый вася 01.11.2016 16:19

блок событий для открытого окна
 
Люди намекните плз чем можно реализовать такого рода блок событий
из серии
if ( открыто окно $('#one') ) {
выполнять только набор функций #1
}
else if ( открыто окно $('#two') ) {
выполнять только второй набор
}
и т.д.

пишу.is(':visible') не реагирует ( постоянно visible #первое пишет )

мб нюансы какието есть типа прогрузки блока функий или актуальности времени события или же switch'ом напр или я чето намудрил

может есть событие в jquery например if change visibility =)

ksa 02.11.2016 08:12

новый вася, для начала сделай тестовый пример...

Гробовщик 02.11.2016 08:19

Вот тут чувак хорошо ответил

Цитата:

В jquery к элименту применяется стиль display:none
Если используете метод hide();
<div class="class" style="display:none"></div>
Проверить можно значение у этого свойства
var g = document.getElementById('g');

if(g.style.display==='none'){
console.log('Не видим');
}else{
console.log('Виден');
}


Понять как скрыть элимент можно только зная какой способ вы используете, если вы используете display:hidden, opacity:0, то вот это условие будет верным
$("#test").is(":visible")
Прежде чем проверять стоит выеснить каким способом элимент скрыт
А по факту ksa прав. Без кода очень сложно понять о чём речь, а форум битвы экстрасенсов находится в другом месте

новый вася 02.11.2016 11:01

крч как объяснили мне в соседней теме
$('#one').click(function() {  
А ТУТ ПИШУ if ( первый блок .is(':visible') ) { действие }
});

$('#two').click(function() {  
А ТУТ ПИШУ if ( первый блок .is(':visible') ) { действие }
});

$('#three').click(function() {  
А ТУТ ПИШУ if ( первый блок .is(':visible') ) { действие }
});

а не так с общим ифом
if ( первый блок .is(':visible') ) {
$('#one').click(function() {  });
$('#two').click(function() {  });
$('#three').click(function() {  });
}


грустно конечно на 30-40 функций такую проверку вешать но уже сделал и все работает, интересно конечно, есть же способ его как-то объединить по нормальному а не просто в каждой функции сначала писать if блаблабла...

ksa 02.11.2016 11:37

Цитата:

Сообщение от новый вася
грустно конечно на 30-40 функций такую проверку вешать

Так ты используешь селекторы идентификаторов, а они у всех элементов разные...
Можно нужным элементам присвоить некий класс - тогда все однотипные действия можно "привязать" к селектору этого класса. ;)


Часовой пояс GMT +3, время: 03:13.