Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) jQuery Закрыть модальное окно при нажатие на затемненный фон

Закрыть модальное окно при нажатие на затемненный фон


     02.08.2014    jQuery    3125

вопрос
Я сделал затемнение фона у модального окна по инструкции Sander и все работает, но у меня есть вопрос.
Можно ли сделать закрытие модального окна при нажатие на затемненный фон?

Инструкция от Sander
Скачать jQuery UI 1.8.7 и залить файл в папку engine/classes/js/ файлу дать имя jqueryui.js, старый удалить.
Открыть файл стилей engine.css из папки с шаблоном, добавить стиль:
.ui-widget-overlay {background: #000;opacity: 0.5;-moz-opacity: 0.5;filter: alpha(opacity=50);left: 0;position: fixed;top: 0;}

Для того, чтобы всё заработало, как надо так же нужно открыть /engine/classes/js/dle_js.js
Найти все вхождения слова autoOpen и заменить на: modal:!0,autoOpen

Ответил: DreamFix



//Закрыть диалоговое окно
$('.ui-widget-overlay').live("click", function() {
    if($("#dlepopup").length>0){
        $("#dlepopup").dialog("close");
        $("#dlepopup").remove();
    }else{            
        $("#dleprofilepopup").dialog("close");
    }
});

Комментарии пользователей (7)

FastFud
50

1599 | 588

FastFud - 2 августа 2014 16:46 - Юзер

$(function(){
$('.ui-widget-overlay').live('click', function(){
   $('.ui-widget-overlay, .ui-dialog').remove();
});
});

fh79655l123
11

206 | 25

fh79655l123 - 2 августа 2014 17:07 - Юзер

Работает, но при повторном открытие модального окна переходит в сам профиль а не открывает окно и если два окна открыто то закрывает сразу 2 окна, а надо что бы закрывало одно окно которое находится поверх первого окна

FastFud
50

1599 | 588

FastFud - 2 августа 2014 17:14 - Юзер

Когда стоит overlay нельзя открыть другие окна да и вообще можно при 1 клике одно окно вызвать (я не знаю как вы сразу 2 открыли).

Работает, но при повторном открытие модального окна переходит в сам профиль
Код который я вам дал выше к этому не имеет отношения. Ссылку на сайт дайте.

fh79655l123
11

206 | 25

fh79655l123 - 2 августа 2014 17:24 - Юзер

У меня стоит модуль друзья. Так что первое окно это профиль пользователя, а второе окно это модальное окно при удаление из друзей.
Сайт на локалке так что не как не получаеться с ссылкой на сайт =)
Если я не ошибаюсь то в dle_js.js модальное окно закрывает через команду
$(this).dialog('close');
так что может её как то использовать при нажатие на затемненный фон

FastFud
50

1599 | 588

FastFud - 2 августа 2014 17:35 - Юзер

1.Когда стоит overlay разумнее закрывать все сразу так как по другому получится глупо(я так думаю).
2.Редактируйте код от модуля друзья.

P.S - Overlay на то и был придуман чтобы люди не могли открывать много всякой всячины а то получится хаос.

fh79655l123
11

206 | 25

fh79655l123 - 2 августа 2014 17:41 - Юзер

В модальном окне от модуля друзья я тоже autoOpen заменил на: modal:!0,autoOpen так что идет повторное затемнение поверх первого окна.
Надо подождать может кто то знает как сделать... =)

fh79655l123
11

206 | 25

fh79655l123 - 2 августа 2014 18:27 - Юзер

DREAMFIX, Спасибо все работает.
Только если открыто 2 окна то при закрытие второго окна через кнопку закрыть или отмена, то первое окно зарывается при нажатие на затемненный фон не с первого раза, а только со второго.
Ну мне кажется не кто не будет открывать сразу 2 окна так что можно и так оставить.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы