2012-03-08 24 views
0

所以我使用下面的代碼來創建一個帶有3個選項卡的TabContainer。但是,當我打印頁面時,我希望頁面看起來好像沒有調用dojotype =「dijit.layout.TabContainer」。我該怎麼做才能做到這一點?當媒體=打印時,如何使用jQuery收回dojotype =「dijit.layout.TabContainer」?

<div id="holdtabscript"> 
<script type="text/javascript"> 
dojo.require("dijit.layout.TabContainer"); 
dojo.require("dijit.layout.ContentPane"); 
</script> 
</div> 

<div dojotype="dijit.layout.TabContainer" id="tabfunct"> 
<div dojotype="dijit.layout.ContentPane" title="pane1" selected="selected"> content1</div> 
<div dojotype="dijit.layout.ContentPane" title="pane2"> content2</div> 
<div dojotype="dijit.layout.ContentPane" title="pane3"> contents</div> 
</div> 
+0

看起來像你應該閱讀此:http://stackoverflow.com/questions/4927025/can-jquery-modify-the-css-for-a-specific-media-type – GnrlBzik 2012-03-08 19:37:40

回答

2

我推薦使用CSS來做到這一點,如果你有機會到頁面的內容。包括隱藏在div的打印樣式表...

在頭...

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

的CSS ...

#tabfunct { display: none; } 

比使用JavaScript這樣的事情要容易得多。

+0

但我無法擺脫div通過使用CSS。我沒有試圖隱藏div,但試圖刪除該div的attr dojotype =「dijit.layout.TabContainer」。 – user110 2012-03-08 19:37:35

+2

然後你需要編輯你的問題,因爲它說「當媒體打印時我如何使用jQuery去除下面的div」,並​​且所有3張海報現在都回答了這個問題。 – Archer 2012-03-08 19:38:40

+0

已編輯。道歉爲模糊。 – user110 2012-03-08 19:50:53

0
<style type="text/css"> 
    @media print { 
     #tabfunct { display:none } 
    } 
</style> 
+0

我不是想隱藏div,而是試圖去除該div的attr dojotype =「dijit.layout.TabContainer」。 – user110 2012-03-08 19:39:08

+0

因爲它有一個HTML ID它只發生一次... – powtac 2012-03-08 19:40:24

+0

謝謝@powtac - 我還沒有看到過這種方法。我只使用了我發佈的那個。你的小改動要好得多。 (雖然我不會投票,因爲海報提出了錯誤的問題,所以我們的答案實際上都是錯的!) – Archer 2012-03-08 19:40:34

0

您可以使用下面的庫:http://cssmedia.pemor.pl/

然後,只需:

$(function() { 
    if(IsMediaType('print') > 0) { 
     $('#tabfunct').removeAttr('dojotype'); 
    } 
}); 

可能應該做的伎倆。