javascript - 在页面或子页面上使用 PHP 将事件类添加到导航链接?

标签 javascript php jquery html css

我在这个网站和网络上看到了很多这类问题,但我找不到我正在尝试做的事情的具体答案。我不想使用 JS,我想尽可能少地使用它,但如果必须的话,我会求助于它。

我想在该页面打开时或下拉菜单中的页面(我指的是子页面)打开时使用 PHP 将事件类添加到我的导航链接。这是我的代码。

在我的所有页面中,我都“包含”了以下内容:

<?php include('includes/header.php'); ?>

作为包含页面的一部分,我有以下内容:

<ul class="firstbar">
    <li class="item"><a href="index.php">Home</a></li>
    <li class="item has-dropdown">
        <a href="about.php">About Us</a>
        <ul class="dropdown">
        <li><a href="about.php#about">G2 Drivers</a></li>
        <li><a href="about.php#locations">Locations</a></li>
        <li><a href="about.php#instructors">Instructors</a></li>
        </ul>
    </li>
    <li class="item has-dropdown">
        <a href="services.php">Services</a>
        <ul class="dropdown">
        <li><label>In-car</label></li>
        <li><a href="services/defensivedriving.php">Defensive Driving</a></li>
        <li><a href="services/incarlessons.php">In-car Lessons</a></li>
        <li class="divider"></li>
        <li><label>In-class</label></li>
        <li><a href="services/curriculum.php">Curriculum</a></li>
        </ul>
    </li>
</ul>

您可以在这里查看测试网址:www.mrobertsdesign.ca/g2drivers/(事件类已经可用,只是不确定如何添加它)

active 类需要添加到 anchor 链接标签之前的列表项标签中,如下所示:

    <li class="active item"><a href="index.php">Home</a></li>

about.php 页面有一个下拉菜单,但它只是哈希链接到该页面的部分内容。但是对于像 services.php 这样有一个下拉到不同页面的页面,我希望“服务”列表项标签也有事件类,所以没有什么不同。像下面这样:

    <li class="active item has-dropdown">
        <a href="services.php">Services</a>
        <ul class="dropdown">
        <li><label>In-car</label></li>
        <li><a href="services/defensivedriving.php">Defensive Driving</a></li>
        <li><a href="services/incarlessons.php">In-car Lessons</a></li>
        <li class="divider"></li>
        <li><label>In-class</label></li>
        <li><a href="services/curriculum.php">Curriculum</a></li>
        </ul>
    </li>

到目前为止,我在我看过的任何问题中都找不到的是,如果一个问题当前位于下拉菜单中的某个页面上,那么大多数问题似乎都没有包括下拉菜单的想法,代码通常包括查找当前页面等,所以到目前为止我还没有办法用它来解决这个问题。

感谢所有帮助!谢谢!


@1andsock 回答了下面问题的前半部分,但我有几个页面位于不同的文件夹中并且具有相同的名称,因此脚本在这些情况下不起作用。对于任何想看一看并愿意帮助我解决这个问题的人来说,那太棒了 =)

Add class="active" to active page using PHP

那是一篇与这篇文章类似的文章,我刚刚看到,它似乎回答了我正在寻找的问题,但它有一个“noactive”类,我只希望它是“active”或只是不显示事件。

最佳答案

我还没有测试过这个,但你为什么不能这样做:

<?php
  $current_page = basename($_SERVER['PHP_SELF']);
?>

然后:

<li class="<?php if ($current_page == "index.php"){ echo "active "; }?> item"><a href="index.php">Home</a></li>

对于普通链接,以及:

<li class="<?php if ($current_page == "index.php"){ echo "active "; }?> item has-dropdown">
    <a href="about.php">About Us</a>

用于带有下拉菜单的链接?

关于javascript - 在页面或子页面上使用 PHP 将事件类添加到导航链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23330454/

相关文章:

php - readdir 函数不读取 Linux 系统上的整个目录

php - Laravel 6 - CSS 文件传输到公共(public)文件夹

javascript - 如何将函数中找到的javascript变量值存储在php变量中

javascript - jQuery timepicker 不能在模态中工作

javascript - Fabric.js getObjects() 按标签或类型

javascript - 选择值后的下拉列表创建新字段

javascript - zAccordion - slider jquery 和 html - 图像幻灯片上的文本

javascript - 从 Rails 3 中的 Controller 方法或助手获取数据到 ajax

javascript - 无法在 Tr>Div 中附加子对象

javascript - iframe和叠加按钮问题