javascript功能,实现点击过的菜单变色
发布时间:2015-10-14, 15:16:55 分类:HTML | 编辑 off 网址 | 辅助
正文 1779字数 157,315阅读
建议用jquery库实现.
具体是4个菜单的母容器设ID=mother,4个菜单分别在一个li里如下
<ul id="mother">
<li onclick="changeClass(this)";></li>
</ul>
function changeClass(a)
{
$("#mother").children("li").removeClass("被点击的菜单的CSS类");
$(a).addClass("被点击的菜单的CSS类");
}
如果不用jquery会比较麻烦但是也可以写
function changeClass(a)
{
document.getElementById("mother").getElementsByTagName("li").className="未被点击的CSS类";
a.className="被点击菜单的CSS类";
}
我也忘了是不是className了,你跟踪一下看看有问题也是大小写的问题.但jquery的方法应该是没错的.
像你图片里的菜单html应该差不多这么写
<div id="mother">
<div class="menu">
<span>硬件产品<span>
<ul>
<li onclick="changeClass(this)";>终端产品</li>
<li onclick="changeClass(this)";>软件产品</li>
</ul>
</div>
</div>
css这方面的问题在写就多了,你估计看着也烦。具体就是也写background,text-alain 和float的问题。应该不难写。
ps:你这不叫单击过的菜单变色.二是当前选中的菜单变色.谢谢
追问:
我点了菜单后是链接到另一个新的页面去了。菜单这部分被include过去了,有没像COOKIE一样能记忆得住,哪个菜单背景色该变的。而不是点的瞬间变色了,到了新打开的页面,又没变。
追答:
不知道你后台使用什么代码写的。
一般情况下都是后台直接设置前台高亮菜单的。
onready事件里这样写
function onreadyfunc()
{
var lis=document.getElementById("mother").getElementsByTagName("li");
for(var i=0;i<lis.length;i++)
{
var href = location.subStr(location.lastIndexOf("/"));
if(lis[i].getElementsByTagName["a"][0].href==href)
{
lis[i].className="高亮CSS"
}else
{
lis[i].className="非高亮CSS"
}
}
}
ps:百度这边没有代码编辑器,可能有JS代码的大小写错误,你自己编辑的时候注意点儿,.
Run code
Cut to clipboard
(支付宝)给作者钱财以资鼓励 (微信)→
暂无评论 »