Php 突出显示活动链接

Php 突出显示活动链接,php,xhtml,Php,Xhtml,如何在单击时突出显示活动链接,但在单击其他链接之前保持主页链接突出显示 如果有帮助的话,我正在使用PHP 这是我的(x)HTML代码 <div id="nav"> <ul> <li><a href="http://localhost/link-1/" class="active">Link 1</a></li> <li><a href="http://localhos

如何在单击时突出显示活动链接,但在单击其他链接之前保持主页链接突出显示

如果有帮助的话,我正在使用PHP

这是我的(x)HTML代码

<div id="nav">
    <ul>
        <li><a href="http://localhost/link-1/" class="active">Link 1</a></li>
        <li><a href="http://localhost/link-2/">Link 2</a></li>
        <li><a href="http://localhost/link-3/">Link 3</a></li>
        <li><a href="http://localhost/link-4/">Link 4</a></li>
    </ul>
</div>


我现在无法测试此功能,但请告诉我它是否适用于您

var menuArray = new Array();

$(function() {


    $('div#nav ul li').each(function(i) {
        menuArray[i] = this;
        $(this).click(function() {
            for (var x in menuArray)
                if (x == this)
                    $(x).attr('class','active');
                else
                    $(x).attr('class','inactive');
        });
    });
});
编辑好的,我能够测试这个,它对我有效。请记住,这需要在HTML声明之后进行

$("li a").each(function(i) {
        $(this).click(function() {
             $(this).attr('class','selected');
             $("li a").not(this).attr('class','notselected');
        });
});

您可以在php中执行一个方法,下面是一个示例:

<div id="nav">
    <ul>
        <li><a href="http://localhost/link-1/" <?=$activateLink($_SERVER['REQUEST_URI'],'/link-1')?>>Link 1</a></li>
        <li><a href="http://localhost/link-2/" <?=$activateLink($_SERVER['REQUEST_URI'],'/link-2')?>>Link 2</a></li>
        <li><a href="http://localhost/link-3/" <?=$activateLink($_SERVER['REQUEST_URI'],'/link-3')?>>Link 3</a></li>
        <li><a href="http://localhost/link-4/" <?=$activateLink($_SERVER['REQUEST_URI'],'/link-4')?>>Link 4</a></li>
    </ul>
</div>
<?php
function activateLink($uri,$var) 
{
    if($uri==$var) {
        return 'class="active"';
    }
}
?>


在每个页面上打印$\u SERVER['REQUEST\u URI'],并将第二个参数传递给该方法。

这将完全不需要PHP,但是您可以在PHP上构建它。我将向您演示如何在HTML/CSS中构建它

在文档中尝试此CSS/HTML(在代码之前):


.主动{
颜色:#336699;
}
海军航空局{
颜色:#121212;
}
海军陆战队a组:参观{
颜色:#336699;
}
如果他们被访问过,所有的链接都应该是蓝色的,如果他们没有访问过,链接将是深灰色的。但是,如果您希望它只突出显示一个链接,那么最好使用JQuery,因为它有许多函数只选择要选择的链接


希望这能有所帮助。

@Robert-当stacks要求提供服务器端解决方案(PHP)时,这是一个客户端(jQuery)解决方案。很肯定他说他在使用PHP,而不是说它必须是PHP。@Robert-我在访问的新网站上使用FF和NoScript,所以我不会看到您的方法完成了突出显示,但如果使用PHP,我会看到它。诚然,我是少数。我应该寻找什么JQuery函数?你说的“活动”是指指向用户正在查看的页面的链接吗?@Peter Ajtai是的,这就是我的意思。我来到这里并成功地使用了它,干杯。我建议将
$\u SERVER['REQUEST\u URI']
移动到该函数中,这样你就不必重复了。
<style>
       .active {
             color:#336699;
       }

       div#nav ul li a {
             color:#121212;
       }

       div#nav ul li a:visited {
             color:#336699;
       }
</style>