Скрытие скриптов. Нужна помощь!
Добрый день! Есть несколько функций модальных окон.
Как сделать, чтобы при вызове нового окна, закрывались все остальные? И так у каждого модального окна. |
Чтобы при открытии одного файла закрывались остальные файлы? Или чтобы при открытии одного окна закрывались остальные окна?
|
Чтобы при открытии одного js файла скрывались все остальные, не знаю просто как реализовать. :(
|
Просто у меня каждое окно реализовано в разных файлах, по сути, разницы нет, лишь бы окна (файлы) скрывались перед открытием другого окна.
|
Может все-таки не окна, а что-то типа панели? И если они открываются не ради просто открыть, то почему при уже открытой существует возможность открыть другие? Может все-таки не закрывать, а запрещать?
|
В том-то и беда, что при открытии нового окна (popup1.js), старое должно само скрыться (popup2.js).
|
Понятно, то есть это выбор в меню. Тогда вам уже советовали верное решение - выбросить четыре файла и написать один сценарий обслуживающий эту задачу. В нем и должна быть операция, которая закроет уже открытое, а откроет запрашиваемое.
PS. Если я правильно понял, то что у вас описано в нескольких файлах, это отображение содержимого, которое показывается у выбранной кнопки. Значит и речи о "закрытии открытого" можно не вести, ибо в данном случае лучше определить один объект, в который загружается запрошенное, и который смещается по вертикали относительно активной кнопке. |
Вот я и не знал как определить один объект, поэтому написал к каждой кнопке по окну и смещаю индивидуальными стилями.
$(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; }); }); }); }); Значит вот в этом скрипте окна уже ничего не поменять, чтобы осуществить задачу и нужно все делать заново? |
Выбрасывайте. У объекта, в который помещается запрашиваемый контент должно быть все прописано в стилях, кроме позиции по вертикали. Нажатие кнопки меню - это запрос, помещение ответа в объект, получение позиции по вертикали (смещение) кнопки меню, и определение позиции объекта по вертикали как смещение кнопки меню + величина коррекции.
Единственное о закрытии, так это если щелчок вне меню, вот тогда закрыть открытое. |
Lucard IV,
а минимальный html вашего меню c css можно увидеть ? и зачем вам overlay? |
Часовой пояс GMT +3, время: 20:51. |