选择子菜单时激活导航项(无js)



我想找到一种在选择子菜单项时突出显示导航项的方法。它必须在PHP中完成。菜单所在的位置被动态加载为每个页面上的include。另外,我不是程序员,所以请像初学者一样解释。

我在include.php文件中有以下菜单:

<?php
function setActive($name){
global $pageName;
if ($pageName == $name){
echo "class='active' ";
}
}
?>

<ul id="menu">

<li ><a <?php setActive ('A')?> href="a.php">A</a></li>
<li ><a <?php setActive ('B')?> href="a.php">B</a></li>
<li>
<a  href="#"  >C</a>

<ul>
<li><a href="D.php">D</a></li>
<li><a href="E.php" >E</a></li>
</ul>
</li>
<li>
</ul>

每个页面都有以下内容:

<?php
$pageName ='D';
require "include.php";
?>

当选择D或E时,如何使主菜单项C处于"活动"状态?

谢谢。

有更好的方法可以做到这一点,使用适当的菜单结构,但使用您已经拥有的系统,您可以做这样的事情:

<?php
function setActive($name) {
global $pageName;
if ($pageName == $name){
echo "class='active' ";
}
}
function setMultiActive($array_of_names) {
global $pageName;
foreach ($array_of_names as $name) {
if ($pageName == $name) {
echo "class='active'";
break;
}
}
?>

<ul id="menu">

<li ><a <?php setActive ('A')?> href="a.php">A</a></li>
<li ><a <?php setActive ('B')?> href="a.php">B</a></li>
<li>
<a  href="#" <?php setMultiActive(['D', 'E']) ?>>C</a>

<ul>
<li><a href="D.php">D</a></li>
<li><a href="E.php" >E</a></li>
</ul>
</li>
<li>
</ul>

快速版本,只需为两个子菜单项添加签入即可。

<li ><a <?php setActive ('A')?> href="a.php">A</a></li>
<li ><a <?php setActive ('B')?> href="a.php">B</a></li>
<li > 
<a <?php setActive ('D')?> <?php setActive ('E')?> href="#">C</a>
<ul>
<li><a <?php setActive ('D')?> href="D.php">D</a></li>
<li><a<?php setActive ('E')?> href="E.php" >E</a></li>
</ul>

相关内容

  • 没有找到相关文章