Csdn左边菜单栏的点击后链接背景色变化,怎么做的? 本帖最后由 cundop 于 2010-09-11 17:30:23 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这不是加一个背影颜色吗?bgcolor #1是加一个背景色,点击后才加,点击哪个就跑到点击这里。你看下Csdn左边菜单栏就知道我的意思了 <style type="text/css">li { background:blue;}</style><ul id="f"><li onclick="changeClr(this);">aaaaa</li><li onclick="changeClr(this);">bbbbb</li><li onclick="changeClr(this);">ccccc</li><li onclick="changeClr(this);">vvvvv</li><li onclick="changeClr(this);">zzzzz</li><ul><script type="text/javascript"> var f = document.getElementById("f"); var cs = f.getElementsByTagName("li"); var len=cs.length; function changeClr(obj){ for(var i=0;i<len;i++){ cs[i].style.background = "blue"; } obj.style.background = "red"; }</script> 这个只要CSS设置好就可以了.如楼上说到的A:HOVER,另外还有A:LINK,A:VISITED都需要设置.3楼那个代码,性能很不好,但这种代码在网上还特别流行,包括有些大站都在用,实在是...关于这个代码的问题以及更好的替代方法,可以看看这个文章http://blog.csdn.net/theforever/archive/2010/08/23/5832244.aspx 如果要操作的项目,数量很少,两三个,倒也无妨.但如果象楼主所说,象CSDN菜单里那么多项的话,那个代码的性能就太垃圾了. 恩,谢谢指导,我知道css肯定比js性能好,但写出兼容的css对我来说很难,所以看到这个问题直接就这么写了,好像要兼容的话,必需最外层放个a标签? <style type="text/css">a { background:red;}a:active { background:blue;}</style><a href="javascript:void(0)"><div>aaa</div></a><a href="javascript:void(0)"><div>ccc</div></a><a href="javascript:void(0)"><div>ddd</div></a><a href="javascript:void(0)"><div>vvv</div></a>试试这个吧,刚做的 简单的说就是,你点了javascript这个链接,点之前他的css状态a1,点之后是a2;你点了他用javascript把层叠样式改为了a2,然后把以前你点的那个链接的层叠样式恢复到a1。 theforever你好,刚才去看了你链接的文章,写的很好,在我上个项目里,我也采用了你说的记住旧状态的做法,完成切换,可能是我的技术问题,最后放弃了,因为在开发过程中这种只改变一个的状态使程序出现了bug,而且我也没查出什么原因,因为时间紧,最后改为for遍历,而且现在一直是遍历。个人观点:效率有时候是和健壮性互补的。因为浏览器来不及处理频繁的操作,致使状态记录错误,而且这是无法纠正的。但每次遍历就没这样的问题了。小弟初入前端,望指教! 点击按钮弹出div 由小到大移动到屏幕中心点,怎么做 jquery 一个form表单获取多个submit value值的问题 请教如何写一个函数代理 请教一个问题 关于安全性、受信任站点之类的一个问题,总之就是权限问题 如何实现onclick点击一次,显示一个div,再点击一次,取消div显示 在线求助。。。急 急问,如何在装载完之后,再进入下个页面? 有没有现成的函数判断从表单获得的字符串是不是一个合法的日期? 怎样让页面只弹出一个窗口,不会重复弹出窗口?? 帮忙正则表达式逆序环视的问题 js 怎么实现左键的下载功能
li {
background:blue;
}
</style>
<ul id="f">
<li onclick="changeClr(this);">aaaaa</li>
<li onclick="changeClr(this);">bbbbb</li>
<li onclick="changeClr(this);">ccccc</li>
<li onclick="changeClr(this);">vvvvv</li>
<li onclick="changeClr(this);">zzzzz</li>
<ul>
<script type="text/javascript">
var f = document.getElementById("f");
var cs = f.getElementsByTagName("li");
var len=cs.length;
function changeClr(obj){
for(var i=0;i<len;i++){
cs[i].style.background = "blue";
}
obj.style.background = "red";
}
</script>
关于这个代码的问题以及更好的替代方法,可以看看这个文章
http://blog.csdn.net/theforever/archive/2010/08/23/5832244.aspx
a {
background:red;
}
a:active {
background:blue;
}
</style><a href="javascript:void(0)"><div>aaa</div></a>
<a href="javascript:void(0)"><div>ccc</div></a>
<a href="javascript:void(0)"><div>ddd</div></a>
<a href="javascript:void(0)"><div>vvv</div></a>
试试这个吧,刚做的
在我上个项目里,我也采用了你说的记住旧状态的做法,完成切换,可能是我的技术问题,最后放弃了,
因为在开发过程中这种只改变一个的状态使程序出现了bug,而且我也没查出什么原因,因为时间紧,最后改为for遍历,而且现在一直是遍历。
个人观点:效率有时候是和健壮性互补的。因为浏览器来不及处理频繁的操作,致使状态记录错误,而且这是无法纠正的。但每次遍历就没这样的问题了。小弟初入前端,望指教!