Решил проблему, если кого-то заинтересует мой lightbox расскажу об изменениях.
Проблема была в том, что метод appendTo перемещаем нужный для вставки в лайтбок объект из body вообще
А закрывал я lightbox методом remove(), что удаляем и lightbox и перемещенный объект, т.е. нужного мне элемента больше нет в DOM'е
Мы просто создаем переменную и помещаем туда объект с которым работаем и перед закрытием лайтбокса возвращаем его обратно в DOM
Добавлено всего три строчки в код и вуаля
CODE ( javascript):
скопировать код в буфер обмена
/** ============= lightbox ============= **/ var element_lightbox; // хранит в себе текущий рабочий елемент, для обратного возврата в body var hide_lightbox = false; $('.lightbox_show').mouseout(function() { hide_lightbox = true; }); $('.lightbox_show').mouseover(function() { hide_lightbox = false; }); $('body').click(function () { if(hide_lightbox) { // перед закрытием лайтбокса помещаем рабочий элемент обратно в body element_lightbox.appendTo('body'); $('#lightbox_overlay').remove(); $('body').css('overflow-y', 'auto'); hide_lightbox = false; } }); // позиционирование контейнера function positionLightbox() { var top = ($(window).height() - $('.lightbox_show').height()) / 2; var left = ($(window).width() - $('.lightbox_show').width()) / 2; $('#lightbox_container').css({ 'top' : top, 'left': left }); } // показываем затенение, скрываем полосу прокрутки function lightbox() { // скрыть полосы прокрутки $('body').css('overflow-y', 'hidden'); // показываем лайтбокс $('<div id="lightbox_overlay" class="group"></div>') .css('top', $(document).scrollTop()) .appendTo('body'); // вставляем в лайтбокс контейнер $('<div id="lightbox_container" class="group"></div>') .appendTo('#lightbox_overlay'); } // ============= окошечко для входа на сайт ============= // $('a.login').click(function(event) { event.preventDefault(); // сохраняем елемент для предотвращения потери после удаления лайтбокса element_lightbox = $('.lightbox_login'); // запускаем лайтбокс lightbox(); // помещаем и показываем форму входа в контейнере $('.lightbox_login').appendTo('#lightbox_container'); // центрируем контейнер positionLightbox();
(Отредактировано автором: 05 Сентября, 2012 - 10:48:40)
|