Jquery隐藏和显示功能

时间:2015-02-01 21:33:03

标签: jquery function click hide show

在我的header.php上(包括在我的所有页面中,因为里面有菜单),我创建了这个功能,它显示/隐藏了一个#fullscreen-slider,它改变了#logo的颜色。滑块打开时设置为白色,滑块打开时设置为黑色。

我希望这个文本在我的主页上最初为白色,而在所有其他文本上为黑色。

$(document).ready(function() {
$('#logo a').css('color','white');
$('#logo').click(function(event) {

    if ($('#fullscreen-slider').is(':visible')) {

        $('#fullscreen-slider').hide();
        $('#logo a').css('color','black');

    } else {

        $('#fullscreen-slider').show();
        $('#logo a').css('color','white');

    }

    event.preventDefault();

});
});

我还在除主页之外的所有页面上添加了此功能:

<script>
$(function() {
$('#fullscreen-slider').hide();
$('#logo a').css('color','#333');
});
</script>

这是html:

<body>
<div id="conteneur">
<div id="fullscreen-slider" class="royalSlider rsDefault">
    <img src="<?php bloginfo('stylesheet_directory'); ?>/images/perron_01.jpg" />
    <img src="<?php bloginfo('stylesheet_directory'); ?>/images/perron_01.jpg" />
    </div>
    <header>
        <div id="logo">
            <a href="#">Adequat</a>

2 个答案:

答案 0 :(得分:0)

如果您的默认颜色为白色,请在CSS中设置。

#logo a {
color: #white;
}

确保缓存您的元素,这样您就不会像这样经常访问DOM:

var logoAnchor = $('#logo a'),
    logo = $('#logo'),
    fullscreenSlider = $('#fullscreen-slider');

我假设你的徽标锚在#fullscreen-slider内?如果是这样,那么你需要遍历,因为jQuery无法找到你所针对的元素。如果没有,那么试试这个:

logoAnchor.click(function(event) {

    if ($(fullscreenSlider).is(':visible')) {
        $this.hide();
        logoAnchor.css('color','black');
    } else {
        $this.show();
        logoAnchor.css('color','white');
    }

});

是否可以将HTML粘贴到您的问题中。

答案 1 :(得分:0)

  

我希望这个文本在我的主页上最初为白色,而在所有其他文本上为黑色。

我会实现这个检查实际网址。使用PHP或js。

使用js document.location.pathname并假设您知道主页的网址(例如:www.your-domain.com/index.php将返回/index.phpwww.your-domain.com/将返回/

var logoColor = 'black';
if (document.location.pathname.indexOf("index.php") != 0 ||
    document.location.pathname == '/') {
    logoColor = 'white';
}
// ...
$('#logo a').css('color', logoColor);

使用PHP:

index.php 中,在包含 header.php 之前添加以下内容:

<?php $logoColor = 'white'; ?>

然后在 header.php

// ...
$('#logo a').css('color', '<?php echo isset($logoColor) ? $logoColor : 'black' ; ?>');
// ...