jquery - 在菜单中添加活动类
问题描述
我通过 jQuery 在 nav > ul >li 中添加 class="active" 以更改背景颜色。它在 href="#" 时工作。但是当我在 href="example.php" 之间添加链接时 - 它转到页面。但是活跃的课程没有工作,背景也没有显示我在哪里。
是否可以通过 jQuery 显示我现在所在的页面或它们在 WP 中的工作方式以及背景更改?
$(document).ready(function(){
$(".menu").on('click','li', function(){
$(".menu .active").removeClass('active');
$(this).addClass('active');
} );
});
<ul class="menu">
<li class="active"><a href="index.php">Home</a></li>
<li><a href="bestdeal.php">Best Deal</a></li>
<li><a href="#">Shop</a>
<ul>
<li><a href="#">Sub menu</a></li>
<li><a href="#">Sub menu</a></li>
</ul>
</li>
<li><a href="#">About Us</a>
<ul>
<li><a href="#">Sub menu</a></li>
<li><a href="#">Sub menu</a></li>
</ul>
</li>
<li><a href="#">Contact Us</a></li>
</ul>
解决方案
您可以尝试检查页面 href 是否与您的链接完全匹配,以防它不是#
链接。
$(document).ready(function(){
var $links = $('.menu li a');
$links.closest('.active').removeClass('active');
$links.filter(function(){
return this.href === window.location.href;
}).closest('li').addClass('active');
});
.active a { color: red }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="menu">
<li class="active"><a href="index.php">Home</a></li>
<li><a href="/js">My Amazing Code Snippet on Stack Overflow</a></li>
<li><a href="#">Shop</a>
<ul>
<li><a href="#">Sub menu</a></li>
<li><a href="#">Sub menu</a></li>
</ul>
</li>
<li><a href="#">About Us</a>
<ul>
<li><a href="#">Sub menu</a></li>
<li><a href="#">Sub menu</a></li>
</ul>
</li>
<li><a href="#">Contact Us</a></li>
</ul>
推荐阅读
- git - 如何将 git 与 pipenv 一起使用?
- php - 当我尝试使用简码保存页面时,WordPress 编辑器中断
- android - 回收站视图未列出且 getItem 计数返回 0
- javascript - 星号 * 不适用于单词匹配 JavaScript \w*
- java - AESCrypt 从 Java 到 c#
- java - 每当我想从课堂上运行 Intent 时 NPE
- nlog - 使用 NLog 在 .NET 核心 WebAPI 中获取 Corelation Id?
- sql - 单个 SQL 查询中的计数和 AVG
- angular - 如何使用 Http 为 Angular 2 中的特定组件正确使用进度微调器?
- amazon-elastic-beanstalk - AWS Beanstalk 中的 Rails 6 凭证:ArgumentError: key must be 16 bytes