2

我已经问过了,但我认为我不够具体!

我正在寻找一种非常简单的方法来隐藏一个没有任何信息的 div。- 它需要对客户来说很简单,这样他们就不必担心了。

Div 在某些类别中使用 joomla 将信息放入其中。

例如,在我的主模板上,我可能在左侧导航下方有一个 div,我可以选择它在哪些页面中显示模块,但是当它不使用时,它仍然显示它的边框。

我也不想为站点使用许多不同的模板,只是能够使用许多模块位置,但是当它们不使用时,它们会被隐藏。

http://msc-media.co.uk/

看看,在我左边的导航下。

如果它有帮助,如果 joomla 没有在该页面上输出任何数据,这是我试图隐藏的代码:

    <div id="lnav2">
    <jdoc:include type="modules" name="left2" />
    </div>

提前致谢

4

5 回答 5

4

查看 jquery :empty 选择器

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 。

于 2012-02-29T20:30:12.460 回答
4

在 Joomla!您可以使用模板countModules来确定是否为该职位设置了模块。所以你的代码可以这样包装:

<?php if ($this->countModules('left2')): ?>
    <div id="lnav2">
        <jdoc:include type="modules" name="left2" />
    </div>
<?php endif; ?>

这样,<div id="lnav2">只有在该位置有活动模块时才会呈现。

于 2012-02-29T23:31:02.167 回答
2

您可以在页面上放置 jQuery 代码。就像是:

$(function() {
    $('div').each(function() {
        if($(this).html() == '') {
            $(this).css('display','none');
        }
    }
});
于 2012-02-29T20:28:45.363 回答
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;" 摆脱那个障碍。

于 2012-02-29T20:27:22.570 回答
0

虽然在页面加载时隐藏 div 很好,但display: none默认情况下将 div 设置为更简洁,如果它确实有内容则显示它。此外,仍应将其包装在 a.ready中以确保已加载所有内容。

jQuery( function( ) {
    jQuery( '#divid:not(:empty)' ).css( 'display', 'block' );
});
于 2012-02-29T20:37:15.057 回答