回调jquery插件printThis

时间:2014-05-16 13:26:50

标签: jquery-plugins jquery-callback printthis

我试图通过使用此搜索和谷歌找到解决方案,但我找不到任何东西,我希望你能帮助我。

我使用printThis插件仅打印部分页面(在我的例子中是DIV =模态对话框)。插件页面:https://github.com/jasonday/printThis

调用打印对话框后我打印文档我想自动关闭模态对话框,但是我需要一个回调函数。

这就是用于打印的代码:

$(".printable").printThis({
             debug: false,
             printContainer: false,
             pageTitle: $("#info-modal .short-info .panel-headline-wrapper h1").html(),
             formValues: true,
             printDelay: 0
            })

现在我想我添加一个"完成()"来自jquery的函数"捕获"回调...... 我尝试了以下方法,但它没有工作:

$(".printable").printThis({
            debug: false,
            printContainer: false,
            pageTitle: $("#info-modal .short-info .panel-headline-wrapper h1").html(),
            formValues: true,
            printDelay: 0
        }).done(function(n){
            //close modal dialog
        });

我在拉取请求中找到了一些内容:https://github.com/jasonday/printThis/pull/28 但我不知道如何使用它。

我使用的是最新版本的printThis(v 1.4)和jquery(v 1.11.0)

非常感谢你。

欢呼声, 马可

1 个答案:

答案 0 :(得分:2)

我是printThis插件的作者。

由于打印对话框的性质,您当前的设置将不起作用,因为没有事件与打印对话框相关联(当它被触发,完成等)。此外,$.done是延迟对象或承诺的一部分。它不会在这种情况下起作用。

我还没有测试过拉取请求,但它可能会起作用,因为浏览器可能会在打印对话框打开时暂停并堆叠javascript执行。但是,我不知道这在浏览器中是如何工作的。

如果查看拉取请求,提交者会在标题中添加其他说明。你基本上把一个函数放在配置对象中。

还有另一种选择。您可以在用于触发打印功能的相同单击事件上关闭模式。这种方法会更简单,直到我找到一种有效合并回调的方法。