2012-08-04 143 views
0

我有一個div來顯示最近在隱藏的頁面上顯示的項目,如果它使用innerHTML爲空,所以外部空框不顯示並且工作正常。 問題是它在頁面上留下了一個很大的洞,直到一個項目被查看。顯示另一個div,如果有另一個隱藏

我一直在試圖做的是顯示另一個div,如果div id =「recentinc」被隱藏,那麼一旦div id =「recentinc」有內容,它將被隱藏。

這是到目前爲止我的代碼:

<div id="recentinc"><?php include 'recentview.php'; ?></div> 
<script type="text/javascript"> 
if (document.getElementById('recentinc').innerHTML == '') 
    document.getElementById('recently_viewed').style.display = 'none'; 
</script> 
</div> 

我想有另一個DIV如。

<div id="copy">more content</div> 

當div id =「recentinc」被隱藏時,它會顯示出來。

有可能是一個更好的方式來做到這一點與jQuery,但我找不到答案。

任何幫助將不勝感激。

+0

請問您是否可以詳述「偉大的大洞」?如果你做'display ='none''這個元素不應該佔用任何空間。 – pimvdb 2012-08-04 12:58:12

+0

爲什麼被標記爲[tag:jquery]!?我認爲,你顯然很迷惑[標籤:javascript]和[標籤:jquery] – Alexander 2012-08-04 13:15:20

+0

@亞歷山大:他說他不確定jQuery的方式。聽起來他可以區分兩者 - 如果可能的話,他正在尋找jQuery方法。 – pimvdb 2012-08-04 13:35:23

回答

0

據我瞭解,你要基於對#recentinc空虛顯示/隱藏#copy,併爲反其道而行之。

var showRecent = $("#recentinc").children().length > 0; 
$("#recently_viewed").toggle(showRecent); 
$("#copy").toggle(!showRecent); 
+0

這很好,謝謝。我非常感謝你對此的幫助。 – quadrant 2012-08-04 15:16:15

1

不知道什麼是偉大的大洞,因爲將顯示設置爲'無'將從流中移除元素。嘗試設置的公開程度,而不是隻用display:none隱藏它,這樣,這將是無形的,但仍然佔據相同的空間,仍然是在文檔流程:

if (document.getElementById('recentinc').innerHTML == '') 
    document.getElementById('recently_viewed').style.visibility = "hidden"; 

或jQuery的:

$("#recently_viewed").css('visibility', $("#recentinc").is(":visible")?'hidden':'visible'); 
0

嘗試這樣的:

<div id="recentinc"><?php include 'recentview.php'; ?></div> 
<script type="text/javascript"> 
if ($('#recentinc').html().length<1) 
{ 
    $('#recently_viewed').hide(); 
} 
</script> 
</div>