![](/img/trans.png)
[英]Using Jquery .toggle() to open a dropdown menu, need the link to change color when clicked
[英]Jquery menu a:link change color when clicked
我正在尝试制作一些代码,使我能够点击导航线上的链接,然后它将改变颜色,当我点击另一个链接时,颜色将改变回来,新的链接将获得颜色! 但是我的代码似乎有些问题;(任何人都可以帮助我吗?:)
这是在我的try_1.php文件中:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="try_1.css">
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/click.js"></script>
</head>
<body>
<div id="header">
<div id="mainNavMenu">
<ul>
<li><a href="#">Hjem</a></li>
<li><a href="#">CV</a></li>
<li><a href="#">Foto album</a></li>
<li><a href="#">Prædiker</a></li>
<li><a href="#">Artikler</a></li>
<li><a href="#">Foredrag</a></li>
<li><a href="#">Kalender</a></li>
<li><a href="#">Kontakt</a></li>
</ul>
</div>
</div>
</body>
</html>
这是在我的try_1.css文件中:
a:link,a:visited{
color:green;
font-family:calibri;
text-decoration:none;
}
#mainNavMenu ul li {
float:left;
list-style-type:none;
}
#mainNavMenu ul li a:link{
color:blue;
font-size:18px;
padding-right:20px;
padding-left:20px;
line-height:60px;'
text-decoration:none;
display:block;
background:gray;
}
#mainNavMenu ul li a:hover{
color:yellow;
}
#mainNavMenu .changeColor{
background-color:white;
}
这是在我的click.js文件中:
$(document).ready(function(){
var targetElement = $("#mainNavMenu li");
targetElement.click(function() {
$(this).addClass("changeColor");
});
});
当然我也有一个jquery.js文件,但不会复制/粘贴该代码:)
希望你们帮忙:)
试试这个: .siblings()
对你的情况很有用。
$(document).ready(function(){
var targetElement = $("#mainNavMenu li");
targetElement.click(function() {
$(this).siblings().removeClass("changeColor");
$(this).addClass("changeColor");
});
});
您正在将background: gray
样式应用于#mainNavMenu ul li a:link
规则中的<a/>
超#mainNavMenu ul li a:link
。 但是,您将changeColor
类名应用于父<li/>
元素。
的background
施加到样式<li/>
将由被覆盖background
在子样式<a/>
总是在结束了gray
。
您需要将规则应用于超链接。 以下规则有点过于冗长,但我认为它可以通过。
采用
#mainNavMenu ul li a:link.changeColor {
background-color:white;
}
代替
#mainNavMenu .changeColor{
background-color:white;
}
并在代码中更新当前选择器。
$(function(){
var $targetElement = $("#mainNavMenu li a");
$targetElement.click(function() {
$targetElement.removeClass("changeColor");
$(this).addClass("changeColor");
});
});
这应该做..
#mainNavMenu ul li.changeColor{
background-color:white;
}
因为你正在将这个类添加到<li>
这里... $(this)
在你的jquery中引用<li>
..
试试这样吧。
$(document).ready(function(){
var targetElement = $("#mainNavMenu li");
targetElement.click(function() {
targetElement.removeClass('changeColor');
$(this).addClass("changeColor");
});
});
<script type="text/javascript">
$(document).ready(function () {
jQuery('.menu a').click(function () {.
jQuery('.menu a').removeClass('select');
jQuery(this).addClass('select');
});
});
</script>
<nav class="menu">
<a href="#" class="select">all</a>
<a href="#" ">shoes</a>
<a href="#" ">dress</a>
<a href="#" ">hat</a>
<a href="#" ">trousers</a>
<a href="#" ">shirt</a>
</nav>
记住:在CSS中设置属性包括:
::选择
{
颜色:#FFF;
背景:#ed1e79;
文字阴影:无;
}
:: - moz-selection //这个属性需要MOZILA FIREFOX
{
颜色:#FFF;
背景:#ed1e79;
文字阴影:无;
}
我认为这种方法非常容易,您可以轻松理解
注意:当你指导某人时,让我们轻松,最简洁
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.