Чаму Ceebox трыгер дубляваць фрэймы і спасылкі?

Я працую на Drupal сайт, які мае форму адправіць AJAX выклік функцыі, якая выклікае ceebox. Код для функцыі друпал PHP выглядае наступным чынам:

    $commands = array();
    $html = '';
//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, які выклікае Друпал функцыю:

(function($) {
        $.fn.subscribeOpen = function(data) {

            $('#subscribe').ceebox().trigger('click');


        };



})(jQuery);

Гэта ўсё працуе, як чакалася; г.зн. выхоўвае ceebox, які змяшчае/падпісвацца ўтрыманне старонкі ў IFRAME. Калі я націскаю цесную сувязь на ceebox або націсніце на фон, каб закрыць, ён выключаецца першы раз. Калі я затым націсніце на спасылку падпіскі, каб выклікаць Друпал Аякс і ceebox называюць гэта дадае дадатковую цесную сувязь, дадатковы «Пункт 1 з 1» загалоўка і дадатковае акно IFrame. Гэта паўтараецца кожны раз, калі я націскаю зачыніць і затым выклікаць функцыю дадання бясконцасці. Я спрабаваў дадаць UNBIND ( «#») ceebox да элемента #subscribe, а таксама розныя камбінацыі jQuery унікальнага() не methodto без толку. Можа хто-небудзь праліць святло на тое, як развязваць/выдаліць гэтыя дублікаты ceeboxes калі ласка?

1

1 адказы

Я зразумеў гэта, зірнуўшы праз jquery.ceebox.js файл і знайшоў функцыю intialise мець метад жывы() працуе на ім.

Гэта выкліча ўсе віды выдатных пытанняў, як гэта толькі калі-небудзь будзе выклікацца адзін раз на элеменце. Прыведзены вышэй код будзе назваць жывой() некалькі разоў, калі запуск ceebox, таму я б рэкамендаваў замяніць радок 374 jquery.ceebox.js:

$(elem).live("click", function(e){

чытаць:

$(elem).bind("click", function(e){
2
дададзена
+1 Great высілку. Добры адказ.
дададзена аўтар AlphaMale, крыніца
Дзякуй за працу, выратаваў мне па-чартоўску шмат часу.
дададзена аўтар Celos, крыніца