0

我有一个 div 来显示页面上最近查看的项目,如果使用 innerHTML 为空,我将隐藏它,因此外部空框不会显示并且它工作正常。问题是它会在页面上留下一个很大的洞,直到一个项目被查看。

我一直在尝试做的是显示另一个 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 可能有更好的方法,但我找不到答案。

任何帮助将不胜感激。

4

3 回答 3

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');
于 2012-08-04T12:58:38.020 回答
0

试试这个:

<div id="recentinc"><?php include 'recentview.php'; ?></div>
<script type="text/javascript">
if ($('#recentinc').html().length<1)
{
  $('#recently_viewed').hide();
}
</script>
</div>
于 2012-08-04T13:00:36.710 回答
0

据我了解,您想#copy根据 的空性来显示/隐藏#recentinc,而对#recently_viewed.

var showRecent = $("#recentinc").children().length > 0;
$("#recently_viewed").toggle(showRecent);
$("#copy").toggle(!showRecent);
于 2012-08-04T13:41:25.200 回答