Я работаю на сайте drupal, который имеет форму отправки вызова ajax функции, которая запускает ceebox. Код функции drupal php выглядит следующим образом:
$commands = array();
$html = '<a title="" style="display:none;" href="/subscribe" class="ceebox" id="subscribe" rel="iframe width:500 height:350"></a>';
//attempt to remove already existing ceebox generated elements
$commands[] = ajax_command_replace('#subscribe','');
$commands[] = ajax_command_replace('#cee_iframeContent', '');
$commands[] = ajax_command_replace('#cee_title', '');
$commands[] = ajax_command_append('body', $html);
$commands[] = ajax_command_invoke(NULL, 'subscribeOpen', array('subscribe'));
return array('#type' => 'ajax', '#commands'=>$commands);
Javascript, который вызывает функция drupal:
(function($) {
$.fn.subscribeOpen = function(data) {
$('#subscribe').ceebox().trigger('click');
};
})(jQuery);
Это все работает как положено; т.е. выводит на экран ceebox, содержащий / подписывающийся контент страницы в iframe. Когда я нажимаю ссылку закрытия на ceebox или щелкаю фон, чтобы закрыть, он отключается в первый раз. Когда я затем нажимаю на ссылку подписки, чтобы вызвать вызов drupal ajax и ceebox, он добавляет дополнительную близкую ссылку, дополнительный заголовок «Элемент 1 из 1» и дополнительное окно iFrame. Это повторяется каждый раз, когда я нажимаю кнопку закрытия, а затем запускаю функцию добавления бесконечности. Я попытался добавить unbind ('# ceebox') к элементу #subscribe, а также различные комбинации метода jQuery unique (), но безрезультатно. Может ли кто-нибудь пролить свет на то, как отсоединить / удалить эти дубликаты, пожалуйста?