Чтобы контент, который был добавлен с помощью 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
Комментарии
Здравствуйте!
Пытаюсь обработать AHAH-чекбокс в окне модуля Lightbox2 (данная форма работает и возвращает нужные данные в формате json без лайтбокса).
В окне же, после отметки галочкой, никаких действий не происходит (стандартный прелоадер также не появляется).
Предложенное здесь относится к решению этой проблемы?
В js я не очень понимаю.
нет
Добавить комментарий