1

私は次の機能を持っています。

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

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

このhtmlに対して

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

ページ上にコンテンツのブロックがいくつかありますが、印刷プレビューまたは印刷を行うと、印刷プレビューまたは印刷を開く前にすべての div が下にスライドするのを見ることができますが、実際の印刷プレビューまたは印刷ではすべて折りたたまれています。

これがなぜなのか誰にも分かりますか?

ありがとう。

4

2 に答える 2

2

たとえば、印刷スタイルシートを使用する必要があります

<link href="/css/print.css" rel="stylesheet" type="text/css" media="print"/>

JS を使用して何もせずに、印刷ページの外観を具体的にスタイルアップできます。

于 2010-03-18T10:36:51.763 に答える
2

CSS メディアは、JavaScript がスタイル オブジェクトまたは jQuery css メソッドを使用していない限り、プレゼンテーションにのみ機能します。CSS を使用して JavaScript を無効にすることはできません。

ドキュメント ウィンドウの beforeprint イベントにバインドするだけで済みます。通常、jquery は on をドロップし、すべて小文字のイベント名を持ちます。

function expandAll() {
    $(".fieldset:gt(0)").slideDown("fast");
}

$( window ).bind( "beforeprint", expandAll );

// Anonymous would look like

$( window ).bind( "beforeprint", function() { 
    $(".fieldset:gt(0)").slideDown("fast"); 
});

于 2013-12-14T20:24:48.500 に答える