[英]Active link turn different color
我正在尝试链接这三个脚本,以便活动链接变为另一种紫色。 jquery.js包含下载的jquery库。 我不知道为什么它不能按预期工作。 任何人?
<link href="site.css" rel="stylesheet">
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="color.js"></script>
</head>
<body>
<div class="nav-container" >
<ul class="navigation-menu" >
<li><a href='start.php'>Home</a></li>
<li><a href='pay.php'>C2B Payments</a> </li>
<li><a href='sms.php'>C2B SMS</a></li>
<li><a href='#'>B2C Payments</a>
<ul>
<li><a href="getbtc.php"> B2C Payments</a></li>
<li><a href="payment.php"> Make Payments</a></li>
</ul>
</li>
<li><a href='bsms.php'>B2C SMS</a></li>
<li><a href='index.php'>Log Out</a></li>
</ul>
//JS color.js
$(document).ready(function(){
$('ul li a').click(function(){
$('li a').removeClass("active");
$(this).addClass("active");
});
});
//css site.css
.navigation-menu li a.active {
background-color: purple;
color:#fff;
}
试试这个代码
HTML
<ul class="navigation-menu" >
<li class="active"><a href='#'>Home</a></li>
<li><a href='#'>C2B Payments</a> </li>
<li><a href='#'>C2B SMS</a></li>
<li><a href='#'>B2C Payments</a>
<ul>
<li><a href="#"> B2C Payments</a></li>
<li><a href="#"> Make Payments</a></li>
</ul>
</li>
<li><a href='#'>B2C SMS</a></li>
<li><a href='#'>Log Out</a></li>
</ul>
CSS
.active{
background-color:purple;
}
jQuery的
$(document).ready(function(){
$('li > a').click(function() {
$('li').removeClass('active').css("background-color", "");
var $paren = $(this).parent();
if (!$paren.hasClass('active')) {
$paren.addClass('active');
}
});
});
您是否尝试过这个?
.navigation-menu li a:active {
background-color: purple;
color:#fff;
}
与其尝试使用JQuery修改CSS类,不如简单地使用CSS来完成所有这些工作。
CSS活动状态定义为
:active
不像
.active
(以防万一,您试图定位状态而不是故意使用类来做到这一点)
编辑:
$(".navigation.menu").click(function(){
$(".navigation.menu").css("color","#fff");
$this.css("color","#f0f");
});
如果您所做的编辑不完全正确(如我在手机上一样),这可能对您有用,很抱歉。
单击链接后,您的单击处理程序将运行以更改当前页面中被单击项目的类(并因此更改其颜色),但随后将发生常规页面导航并加载指定的页面,从而覆盖已应用于该页面的更改。前一页。
您可以在页面加载时运行一些代码以从location.href
提取页面名称,然后将其用作选择器以在与当前页面相对应的锚点上设置类,而不是使用单击处理程序。
也就是说,如果您能以某种方式判断当前页面为bsms.php
那么您可以说$("a['href=bsms.php']).addClass("active");
bsms.php
那么您将如何做?这是一种方法:
$(document).ready(function() {
var currentPage = location.href.match(/\/(\w+\.php)/);
if (currentPage) {
$("a[href='" + currentPage[1] + "']").addClass("active");
}
});
它使用一个正则表达式,假定您的URL结构与以下内容有所不同:
www.somedomainname.com/optional/folders/pagename.php?optionalargs=something
并获得pagename.php
部分。
正则表达式匹配如下:
\/ - a forward slash (which has to be escaped in the regex)
( - beginning of a sub match
\w+ - one or more "word" characters
\. - a literal .
php - the literal characters php
) - end of the sub match
如果没有匹配项,则currentPage
变量将为null
,否则它将是一个数组,其中索引1处的元素为页面名称。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.