选择子菜单时的活动导航项(无 js)
Acitve navigation item when selected submenu (no js)
我正在寻找一种在选择子菜单项时突出显示导航项的方法。必须在 PHP 内完成。菜单位于动态加载为包含在每个页面上。
另外,我不是程序员,所以请像初学者一样解释一下。
我在 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 时使 'active' 成为主菜单项 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>
我正在寻找一种在选择子菜单项时突出显示导航项的方法。必须在 PHP 内完成。菜单位于动态加载为包含在每个页面上。 另外,我不是程序员,所以请像初学者一样解释一下。
我在 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 时使 'active' 成为主菜单项 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>