亲们,我想点击每一个div他会变成红色,再点击下一个,上一个还会变成原来的颜色,可是当点击两下div的时候,他们几个的颜色都变红色了,麻烦大仙帮我解决一下
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style type="text/css">
.box{ color:#03F; font-size:36px}
.cur{ color:#F00}
</style>
</head>
<body>
<div class="oDivs" id="oDivs">
<div class="box">11111</div>
<div class="box">22222</div>
<div class="box">33333</div>
</div>
</body>
<script type="text/javascript">
var oDivs=document.getElementsByClassName('box')
for(var i=0;i<oDivs.length;i++){
oDivs.item(i).onclick=function(){
oldColor=this.style.color;
for(var i=0;i<oDivs.length;i++){
oDivs.item(i).style.color=oldColor
}
this.style.color='red'
}
}
</script>
</html>
在循环里面在加一个双击事件就行了嘛
oDivs.item(i).ondblclick=function(){
for (var i = 0; i < oDivs.length; i++) {
oDivs.item(i).style.color = 'red';
}
}
能用jquery吗,用jquery就容易多了
得用js嘿嘿
你第一次单击的时候,被单击的元素是蓝色,oldColor=this.style.color;记住了这个蓝色,除了被单击的元素变为红色,其他的都是oldColor,即蓝色。
再一次单击这个元素,oldColor=this.style.color;则记住了红色,即oldColor变为红色,这样循环一下,所有的都变成红色,this.style.color='red'也就没有了意义。
解决办法oldColor在外面声明。
直接把定义一个样式比如.myclass{控件样式定义}
在JS函数里面执行“document.getElementById("控件ID").className = "myclass";”