Fancy Box - как обновить DIV в модальном окне при закрытии

Я искал по всему форуму и до сих пор не нашел ответа. И, кажется, я начинаю сходить с ума.

Может быть, я просто пропустил это, потому что я НЕ программист. Я визуальный дизайнер, который обычно без особого труда может установить предварительно написанный код. И действительно, я установил FancyBox, и он работает хорошо, за исключением одной небольшой проблемы, с которой мне отчаянно нужна помощь.

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

Итак, я смог найти решение, которое обновляет всю страницу.

'onClosed': функция () { parent.location.reload (true); } });

Как, о, как я могу заставить только один div обновлять «onClosed», а не всю страницу ??????


person masterjack98    schedule 03.11.2010    source источник


Ответы (2)


Есть несколько способов сделать это.

Один из способов — получить содержимое div с помощью функции. Эта функция предварительно сформирует ajax-вызов для получения содержимого, скажем, функция называется getcontent(); ваш синтаксис будет что-то вроде onClosed': function() { getcontent(); }

Лучший способ сделать это — получить отредактированный контент и поместить его в div. скажем, вы установили переменную text с содержимым после сохранения редактора, после этого вы можете вставить эту переменную в div с помощью onClosed': function() { $('#divid').html(yourvar); }

Я должен сказать, что оба способа не так просты в реализации. Возможно, если вы покажете код, который у вас есть сейчас, мы сможем вам помочь.

person Tim    schedule 03.11.2010
comment
Прямо Тим, Fancybox использует jquery и загружает собственную библиотеку. Каждая ссылка, которая вызывает fancybox, имеет идентификатор, на который ссылаются, например, см. код ниже. - person masterjack98; 04.11.2010
comment
Идентификатор ссылки не обязательно должен быть идентификатором content-div, поэтому ваш ответ не имеет никакого смысла. Вы должны знать, в каком div должен быть опубликован текст, в настоящее время вы знаете только, какая ссылка активировала fancybox. - person Tim; 05.11.2010

Прямо Тим, Fancybox использует jquery и загружает собственную «библиотеку».

Каждая ссылка, которая вызывает fancybox, имеет идентификатор, на который ссылаются следующим образом.

   <script type="text/javascript">

$(document).ready(function() {
$("#link1").fancybox({
'titleShow'     : false,
'width'             : '80%',
'height'            : '80%',
'autoScale'         : false,
'transitionIn'      : 'none',
'transitionOut'     : 'none',
'type'              : 'iframe',
'onClosed': function() {
   parent.location.reload(true); }
            });
});
    </script>
person masterjack98    schedule 03.11.2010
comment
Пожалуйста, отредактируйте свой вопрос, чтобы добавить эту дополнительную информацию. Поле «Ваш ответ» предназначено только для публикации ответов, а не комментариев или правок. - person Jeff; 03.11.2010