我在这样的页面上有一个水平菜单
<link rel="stylesheet" type="text/css" href="/classified/siteassets/css/mymenu.css" />
<div id="content-container">
<ul>
<li><a href="http://mysite/Classified/Pages/Training.aspx">Training</a></li>
<li><a href="http://mysite/Classified/Pages/Briefing.aspx">Briefing</a></li>
<li><a href="http://mysite/Classified/Pages/Resources.aspx">Resources</a></li>
</ul>
</div>
菜单的样式如下:
#content-container {
font-family: "Trebuchet MS", Verdana, serif;
width:100%;
margin:0 auto;
padding:0;
}
#content-container ul {
border-bottom: 18px solid #C93;
list-style: none;
margin:0 -10px;;
padding-bottom: 1px;
overflow: visible;
width:98%;
}
#content-container ul li {
float: left;
padding:0;
margin:0;
text-align: center;
width: 14.25%;
}
#content-container ul li a {
border-left: 1px #fff solid;
line-height:36px;
text-decoration:none;
color:#ddd;
background-color:#2E4B68;
display:block;
font-size:1.5em;
}
#content-container ul li a:hover {
background-color: #C93;
color:#000;
}
我需要做的是当点击其中一个链接打开相应的页面时,我需要在菜单选项卡上使用相同的颜色作为其悬停颜色打开。我需要通过使用javascript检查URL来查找打开的页面,并使用jquery动态设置该li项目的背景颜色与其悬停颜色相同,以便用户知道当前打开的页面。我该怎么做?
答案 0 :(得分:0)
$(function(){
$("#content-container").on({"mouseover":function(){
// when you mouseover a 'ul li a' this event fires. store it's current background color
$(this).data("background-color",$(this).css("background-color"));
},"click":function(event){
// someone clicked it, grab the color and set the parent li background-color
$(this).parent().css({background-color:$(this).data("background-color")});
}},"ul li a", null);
});
答案 1 :(得分:0)
我认为你想要的是这样的:
jQuery(document).ready(function(){
jQuery("#content-container a").each(function(){
if(jQuery(this).attr("href")==location.href)
jQuery(this).css({"background-color": "#C93",color:"#000"});
});
});
它将覆盖您的菜单,查看链接是否与当前页面地址和样式相匹配。
你应该为此使用css类。
P.s。:未经测试的代码。
答案 2 :(得分:0)
试试这个
$(document).ready( function() {
$("#content-container ul li a").each(function(i, item) {
if($(item).attr("href") == window.location) {
$(item).css("background-color, #c93");
}
});
});
答案 3 :(得分:0)