colorbox回调混乱

时间:2011-11-29 10:28:04

标签: javascript jquery function callback colorbox

我两次打电话给彩盒。第一次通话是点击。当colorbox打开时,您可以点击:

打印其内容
$("a.nivoImageLink").colorbox({
    opacity:.8,
    onComplete:function() {
        cboxPrint(false);
    }
});

第二个:彩色打印机打开缩略图打印图标点击,打印窗口打开,打印过程后彩色盒再次关闭:

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

到目前为止这是有效的。但是当我打开打印图标上的颜色框(第二次调用)时,无论我打哪个电话,彩盒就会打开。这是回调函数:

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

有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:1)

我不太确定我理解你的问题,早上还是太早了^^。你有没有考虑过colorbox的工作原理?打开colorbox后,它会创建一些标记,然后将其隐藏在视图中,并在您想再次显示时取消隐藏它。如果我没记错的话。如果您从页面上的多个颜色框中获得奇怪的结果,则可能需要清除颜色框代码。

您可以使用:

$.colorbox.remove()

这将真正清除文档中所有颜色框代码的痕迹。有更优雅的方法来处理这个问题,比如使用onClosed回调函数。

虽然如前所述,我对你的问题并不十分了解,所以这对你来说可能没什么兴趣。祝你好运:)