我有一个包含两个不同打印按钮和两种div标签的页面:
<button onclick="window.print()">Print Full</button>
<button onclick="PrintPartial()">Print Partial</button>
<div class="not-partial">
Div Content Here should print for "Print Full" but not for "Print Partial"
</div>
<div class="no-print">
This content shouldn't print on either
<div>
我的print.css文件中有以下内容
.no-print { display: none; }
以下是我的PrintPartial()函数
function PrintPartial() {
var notPartial = $(".not-partial");
notPartial.addClass("no-print");
window.print();
notPartial.removeClass("no-print");
}
&#34;打印完整&#34;按钮工作得很好,并根据我的print.css文件打印。使用&#34; no-print&#34;硬编码的div类正确无法打印。
然而&#34;打印部分&#34;按钮打印输出与打印完整按钮完全相同。
当我运行我的调试器并进入我的PrintPartial()函数时,我可以检查元素和&#34; no-print&#34; class正被添加到正确的元素中。它调用window.print()打开打印对话框并删除&#34; no-print&#34;存储在notPartial变量中的元素的类。
我唯一想到的是JQuery select和addClass异步运行,并且在类更改之前调用print?如果是这样,我怎么能确保在addClass完成之后才调用window.print。
我尝试在没有removeClass步骤的情况下运行它并得到相同的结果,所以我知道它不是我的问题,或者至少它不是我唯一的问题。
有人可以告诉我我做错了什么以及如何纠正它?
谢谢, 斯科特
更新:上面的代码工作得很好,正如Pabs123指出的那样。我有一个问题,其中一个不同的css(不包括在这篇文章中)导致显示属性被改回。
由于
答案 0 :(得分:0)
抱歉,我在这里发布的代码按预期工作。正如Pabs123在他/她的评论中提到的那样,我还有其他冲突的CSS没有包含在帖子中,那就是将显示样式改为display:none。所以发布这不是一个很好的问题。遗憾。
感谢您的帮助。