Показать сообщение отдельно
  #1 (permalink)  
Старый 24.07.2015, 22:07
Аспирант
Отправить личное сообщение для alecto Посмотреть профиль Найти все сообщения от alecto
 
Регистрация: 12.11.2014
Сообщений: 84

Помогите адаптировать скрипт к аякс-обновлению страницы
Есть скрипт коллажа, которые работает при обычной загрузке страницы
$(window).load(function () {
      collage();
   });


   function collage() {
      $('.Collage').collagePlus(
      {
         'fadeSpeed' : 2000,
         'targetHeight'    : 300,
         'allowPartialLastRow' : true,
      });
   }

   var resizeTimer = null;
   $(window).bind('resize', function() {
      $('.Collage img').css("opacity", 0);
      if (resizeTimer) clearTimeout(resizeTimer);
      resizeTimer = setTimeout(collage, 200);
   });

но, этот скрипт перестает работать при аякс-перезагрузке данных на странице.
автор расширения PHPBB3 сделал FAQ и описание, "Как подружить это расширение с другим?" http://www.phpbbguru.net/community/topic44157.html

Т.е. надо встроить имеющийся скрипт в следующую обертку...

Цитата:
Шаблон фикса, согласно FAQ по ссылке:
Если какое-то расширение добавляет JavaScript-функционал для сообщений, то этот функционал нужно обернуть в функцию:
function FUNCTION_NAME(e, elements) {
// Код функции.
}

После этого добавить:
$(document).ready(function (e) {
   FUNCTION_NAME(e, $(document));
});
$('#qr_posts').on('qr_loaded', FUNCTION_NAME);

Если JavaScript-функционал добавляется для содержимого сообщений (например, текста или картинок), то после этого нужно также добавить (возможно, в доработанном виде):
$('#qr_postform').on('ajax_submit_preview', function (e) {
   FUNCTION_NAME(e, $('#preview'));
});
С более простым скриптом я разобрался самостоятельно, с этим, простой оберткой
$('#qr_posts').on('qr_loaded', function (e, elements) {
      collage();
   });

дело не обошлось, надо как-то заворачивать тот код, что $(window).bind...
самостоятельно справиться не могу, прошу помощи.
Ответить с цитированием