путаница с обратным вызовом colorbox - PullRequest
1 голос
/ 29 ноября 2011

Я звоню в коробку дважды.Первый звонок по клику.Когда colorbox открыт, вы можете распечатать его содержимое по клику:

$("a.nivoImageLink").colorbox({
    opacity:.8,
    onComplete:function() {
        cboxPrint(false);
    }
});

И второе: colorbox открывается при нажатии пиктограммы print-icon, открывается окно печати, после процедуры печати colorbox снова закрывается:

$("a.print").click(function() {
    $("a.nivoImageLink:not(:hidden)").colorbox({
        open:true,
        onComplete:function() {
            cboxPrint(true);
        }
    });
});

Пока это работает.Но когда я открываю colorbox на значке печати (второй вызов), colorbox открывается именно в этом случае, независимо от того, какой вызов я делаю.Это функция обратного вызова:

function cboxPrint(autoprint) {
    if (autoprint) {
        setTimeout(function() {
            window.print(); 
            $.colorbox.close();
        },800);
    } else {
        $("a.cboxPrint").click(function() { 
            window.print(); 
        });
    }
};

Может кто-нибудь помочь мне?

1 Ответ

1 голос
/ 29 ноября 2011

Я не совсем уверен, что понял ваш вопрос, еще слишком рано утром ^^. Рассматривали ли вы, как работает colorbox? После того, как colorbox был открыт, он создает некоторую разметку, а затем просто скрывает ее из поля зрения и отображает ее, когда вы хотите показать ее снова. Если я правильно помню. Возможно, вам придется очистить код colorbox, если вы получаете странные результаты от нескольких colorbox на странице.

Вы можете использовать:

$.colorbox.remove()

Это действительно удалит все следы кода colorbox из вашего документа. Существуют более элегантные способы решения этой проблемы, такие как использование функции обратного вызова onClosed.

Хотя, как я уже говорил, я не совсем понял вашу проблему, поэтому она может вас мало интересовать. Удачи все таки:)

...