我已经问过了,但我认为我不够具体!
我正在寻找一种非常简单的方法,可以在没有任何信息时隐藏div。 - 它需要对客户来说很简单,所以他们不必担心它。
该部门在某些类别中使用joomla提供信息。
例如,在我的主模板上,我左边的导航栏下面可能有一个div,我可以选择显示模块的页面,但是当它不在使用时,它仍会显示它的边框。
我也不想为网站使用许多不同的模板,只能使用许多模块位置,但是当它们没有被使用时,它们就被隐藏了。
看一看,在我左边的导航栏下。
如果有帮助,如果joomla没有在该页面上输出任何数据,这里是我试图隐藏的代码:
<div id="lnav2">
<jdoc:include type="modules" name="left2" />
</div>
提前致谢
答案 0 :(得分:4)
查看jquery:空选择器
http://api.jquery.com/empty-selector/
<script>$("div:empty").css('display', 'none');</script>
将最新的jquery库加载到
中 <head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
</head>
并将代码放在<script>$("div:empty").css('display', 'none');</script>
上方的头部或html的结束标记之前。这将检测所有空标签的实例。根据您要检测的内容,相应地更改div。
答案 1 :(得分:4)
在Joomla!模板,您可以使用countModules
来确定是否为该位置设置了一个模块。所以你的代码可以像这样包装:
<?php if ($this->countModules('left2')): ?>
<div id="lnav2">
<jdoc:include type="modules" name="left2" />
</div>
<?php endif; ?>
这样,只有当该位置有一个活动模块时才会呈现<div id="lnav2">
。
答案 2 :(得分:2)
您可以在页面上放置一个jQuery代码。类似的东西:
$(function() {
$('div').each(function() {
if($(this).html() == '') {
$(this).css('display','none');
}
}
});
答案 3 :(得分:0)
您可以在不想显示的标签内执行以下操作,如果为空:
<div id="rnav1a" <?php if(empty($variable)||!isset($variable)) echo 'style="display: none;"'; ?>> <jdoc:include type="modules"
name="right1" />
</div>
只需添加css style =“display:none;”摆脱那个障碍。
答案 4 :(得分:0)
虽然在页面加载时隐藏div是好的,但默认情况下将div设置为display: none
会更清晰,如果它确实有内容则显示它。此外,仍应将其包装在.ready
中,以确保所有内容都已加载。
jQuery( function( ) {
jQuery( '#divid:not(:empty)' ).css( 'display', 'block' );
});