Drupal → Как открыть в Lightbox картинки, которые были добавлены на страницу с помощью AJAX

15.10.2010

Чтобы контент, который был добавлен с помощью AJAX, открывался в Lightbox-e, нужно после вставки его (контента) в DOM вызвать функцию Drupal.attachBehaviors([context]). Например:

Drupal.behaviors.mymodule = function(context) {
  $('#ajax-link', context).click(function () {
    $.get(Drupal.settings.basePath + 'some/path', function(response) {
      $('#target').html(response);       // вставляем контент
      Drupal.attachBehaviors('#target'); // оповещаем другие модули
    });
  });
}

Drupal по адресу some/path должен отдать что-нибудь в духе:

<a href="/sites/default/files/public/usergen/old/01.jpg" rel="lightbox"><img src="/sites/default/files/public/usergen/old/01-thumb.jpg" /></a>
<a href="/sites/default/files/public/usergen/old/02.jpg" rel="lightbox"><img src="/sites/default/files/public/usergen/old/02-thumb.jpg" /></a>

По хорошему, Drupal.attachBehaviors([context]); надо вызывать при любом изменении контента, чтобы другие модули могли реагировать на это событие.

Написанное актуально для
Drupal 6
Похожие записи

Комментарии

Гость
05.06.2012, 15:26

Здравствуйте!

Пытаюсь обработать AHAH-чекбокс в окне модуля Lightbox2 (данная форма работает и возвращает нужные данные в формате json без лайтбокса).

В окне же, после отметки галочкой, никаких действий не происходит (стандартный прелоадер также не появляется).

Предложенное здесь относится к решению этой проблемы?

В js я не очень понимаю.

Предложенное здесь относится к решению этой проблемы?

нет

Добавить комментарий