Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Скрытие скриптов. Нужна помощь! (https://javascript.ru/forum/dom-window/54761-skrytie-skriptov-nuzhna-pomoshh.html)

Lucard IV 31.03.2015 06:36

Скрытие скриптов. Нужна помощь!
 
Добрый день! Есть несколько функций модальных окон.
Как сделать, чтобы при вызове нового окна, закрывались все остальные? И так у каждого модального окна.

Alexander Belov 31.03.2015 06:52

Чтобы при открытии одного файла закрывались остальные файлы? Или чтобы при открытии одного окна закрывались остальные окна?

Lucard IV 31.03.2015 07:02

Чтобы при открытии одного js файла скрывались все остальные, не знаю просто как реализовать. :(

Lucard IV 31.03.2015 07:06

Просто у меня каждое окно реализовано в разных файлах, по сути, разницы нет, лишь бы окна (файлы) скрывались перед открытием другого окна.

laimas 31.03.2015 08:37

Может все-таки не окна, а что-то типа панели? И если они открываются не ради просто открыть, то почему при уже открытой существует возможность открыть другие? Может все-таки не закрывать, а запрещать?

Lucard IV 31.03.2015 08:57

В том-то и беда, что при открытии нового окна (popup1.js), старое должно само скрыться (popup2.js).

laimas 31.03.2015 09:01

Понятно, то есть это выбор в меню. Тогда вам уже советовали верное решение - выбросить четыре файла и написать один сценарий обслуживающий эту задачу. В нем и должна быть операция, которая закроет уже открытое, а откроет запрашиваемое.

PS. Если я правильно понял, то что у вас описано в нескольких файлах, это отображение содержимого, которое показывается у выбранной кнопки. Значит и речи о "закрытии открытого" можно не вести, ибо в данном случае лучше определить один объект, в который загружается запрошенное, и который смещается по вертикали относительно активной кнопке.

Lucard IV 31.03.2015 09:19

Вот я и не знал как определить один объект, поэтому написал к каждой кнопке по окну и смещаю индивидуальными стилями.

$(function () {
//script for popups
$('a.show_popup_authors').click(function () {
$('div.'+$(this).attr("rel")).fadeIn(500);
$("body").append("<div id='overlay'></div>");
$('#overlay').show().css({'filter' : 'alpha(opacity=80)'});
return false;
});
$('a.close').click(function () {
$(this).parent().fadeOut(100);
$('#overlay').remove('#overlay');
return false;
});
$(document).click(function(e){
var e = e || window.event,
x = e.srcElement || e.target;
if (x != $('.popup_authors') && !$(x).parents(' .popup_authors').size() ) {
$('.popup_authors').fadeOut();
$('#overlay').remove('#overlay');
}
});

//script for tabs
$("div.selectTabs").each(function () {
var tmp = $(this);
$(tmp).find(".lineTabs li").each(function (i) {
$(tmp).find(".lineTabs li:eq("+i+") a").click(function(){
var tab_id=i+1;
$(tmp).find(".lineTabs li").removeClass("active");
$(this).parent().addClass("active");
$(tmp).find(".tab_content div").stop(false,false).hide();
$(tmp).find(".tab"+tab_id).stop(false,false).fadeI n(300);
return false;
});
});
});
});

Значит вот в этом скрипте окна уже ничего не поменять, чтобы осуществить задачу и нужно все делать заново?

laimas 31.03.2015 09:28

Выбрасывайте. У объекта, в который помещается запрашиваемый контент должно быть все прописано в стилях, кроме позиции по вертикали. Нажатие кнопки меню - это запрос, помещение ответа в объект, получение позиции по вертикали (смещение) кнопки меню, и определение позиции объекта по вертикали как смещение кнопки меню + величина коррекции.

Единственное о закрытии, так это если щелчок вне меню, вот тогда закрыть открытое.

рони 31.03.2015 09:32

Lucard IV,
а минимальный html вашего меню c css можно увидеть ? и зачем вам overlay?


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