0

我没有成功突出显示我的默认网页,例如:www.mydomain.com。当它被重定向到 index.php 和其他菜单链接时,它很好,当它是没有其他文件的普通域时,我不能。我写了以下 Jquery 只是为了放大链接的字体大小并将其变为白色:

$(function () {
            var path = window.location.href;
            path = decodeURIComponent(path);
            path =path.substr(path.lastIndexOf("/") +1);

            $('#menu a').each(function () { 
                var href = $(this).attr('href');
                href=href.substr(href.lastIndexOf("/") +1);
                if (href.indexOf(path) != -1 && path != "") {
                    $(this).closest('li').find('a').css({'color': 'white' , 'font-size' : '18px' });
                        }
               }); //end of each function
            });

HTML 标记是:

  <div id="menu">
            <ul>
            <li><a href="$doc_root/index.php" title="Home Page">Home</a></li>
            <li><a href="$doc_root/travel/grid.php" title="My Trips">travelling</a></li>
            <li><a href="#">images</a></li>
            <li><a href="#">words</a></li>
            <li><a href="#">about</a></li>
            </ul>
    </div>  

当只写域名(www.mydomain.com)时,如何将我的第一个链接菜单“主页”更改为新字体和颜色?我希望它像 index.php 被选中一样突出显示。非常感谢。M PS 不管是否将域名直接重定向到 index.php(我一般都知道怎么做,我不知道如何用 Aruba 来做),不过我正在寻找一个不错的“编程”解决方案。

4

3 回答 3

1

我想您应该能够将Home链接更改为 just /,就像index.php[通常] 默认文档索引名称一样,可以省略。

另外,考虑到您的示例,我认为使用它会更方便,window.location.pathname而不是window.location.href.

#menu a.curpage {
    color: white;
    font-size: 18px;
}

$('#menu a').each(function() {
    if (this.href == window.location.pathname) {
        $(this).addClass('curpage');
    }
});

如果在给定示例中菜单只有五个项目,您可以完全避免使用 JS,请参阅本主题中的答案:Active Menu Highlight CSS

于 2013-07-06T15:16:03.670 回答
1

在每个页面上,使用该页面名称在 PHP 中设置一个变量,因此对于 index.php,设置一个值为“home”的变量。对每个单独的菜单项执行此操作。然后在每个页面加载检查此变量名称并将一个类添加到相关菜单项。像这样的东西:

 <?php
$menuItems = array(
    'Home' => array('text' => 'Home', 'url' => '/'),
    'Page1' => array('text' => 'Page 1','url' => '/page-1'),
    'Page2' => array('text' => 'Page 2', 'url' => '/page-2'),
    'Page3' => array('text' => 'Page 3', 'url' => '/page-3'),
    'Page4' => array('text' => 'Page 4', 'url' => '/page-4'),
);
?>
<div id="nav">
    <ul>
    <?php
    $miCounter = 1;
    foreach($menuItems as $key => $value):
        $currentLink = '';
            if($pageName === $key):
                $currentLink = 'class="selected"';
            endif;
        ?>
        <li>
            <a <?php echo $currentLink; ?> href="<?php echo $value['url']; ?>">
                <?php echo $value['text']; ?>
            </a>
        </li>
        <?php
    endforeach;
    ?>
    </ul>
</div>

因此,当您的当前页面是“主页”( $pageName) 时,它将添加class="selected"到菜单链接。然后在你的css中创建你需要的任何背景或颜色样式selected

于 2013-07-06T15:17:29.440 回答
1

很抱歉碰到了一个老话题,但我刚刚遇到了同样的问题,我找到了解决方案。

$(document).ready(function() {
    $("#menu [href]").each(function() {
        if (this.href == window.location.href) {
            $(this).addClass("active"); <-- INSERT NAME OF YOUR CLASS
        }
        if(window.location.href == "http://YOUR-DOMAIN.??/") {
            $(window.location.href = "http://YOUR-DOMAIN.??/index.php");
            $(this).addClass("active"); <-- INSERT NAME OF YOUR CLASS
        }
    });
});

它将从http://your-domain.com/重定向到http://your-domain.com/index.php并设置“active-class”。

于 2017-11-20T08:18:38.997 回答