为什么jquery有onbeforeprint事件的问题?

Amr*_*mra 2 jquery

我有以下功能.

$(function() {
    $(".sectionHeader:gt(0)").click(function() {
        $(this).next(".fieldset").slideToggle("fast");
    });
    $("img[alt='minimize']").click(function(e) {
        $(this).closest("table").next(".fieldset").slideUp("fast");
        e.stopPropagation();
        return false;
    });
    $("img[alt='maximize']").click(function(e) {
        $(this).closest("table").next(".fieldset").slideDown("fast");
        e.stopPropagation();
        return false;
    });
});

<script type="text/javascript">
     window.onbeforeprint = expandAll;

     function expandAll(){
       $(".fieldset:gt(0)").slideDown("fast");
      }
</script>
Run Code Online (Sandbox Code Playgroud)

对于这个HTML

    <table class="sectionHeader" ><tr ><td>Heading 1</td></tr></table>
     <div style="display:none;" class="fieldset">Content 1</div>

 <table class="sectionHeader" ><tr ><td>Heading 2</td></tr></table>
     <div style="display:none;" class="fieldset">Content 2</div>
Run Code Online (Sandbox Code Playgroud)

我在页面上有几个div class ="fieldset",但是当我打印预览或打印时,我可以看到所有div在打开打印预览或打印之前向下滑动,但在实际打印预览或打印输出时它们都崩溃了.

如果有人为此提供解决方案,我将不胜感激.

任何人都知道为什么这个或如何解决它?

谢谢.

PS:使用a也不起作用(我假设因为jquery使用切换)而不是我正在寻找的那种问题.

Nic*_*ver 6

一种更简单的方法是在CSS中,你可以有不同的打印样式与屏幕,如下所示:

@media print {
  .fieldset { display: block; }
}

@media screen {
  .fieldset { display: none; }
}
Run Code Online (Sandbox Code Playgroud)

.fieldset打印时,类将显示,而不是默认的浏览器.一定要在页面中的div diplay: none上取出你的.fieldset内嵌样式,因为它们会在CSS文件中覆盖其中任何一个.