比较高效的背景变色

 一个项目要用,又不想用jquery之类的东东。先去网上搜索了下,找到了不少在CSS中执行JS的表格行变色方式,不过这类方式在表格行多的时候相当卡,就自己按着最原始的方式倒腾了个出来献给广大的JS小白们(本人也算上JS小白之一  ),在IE7和firefox3中测试正常。

  这段JS放在head中view plaincopy to clipboardprint?
//点击当前选中行的时候设置当前行的颜色,同时恢复除当前行外的行的颜色及鼠标事件  


文章来自: 好喜爱学习网(www.haoxiai.net) 网址:http://www.haoxiai.net/wangzhanzhizuo/JavaScript/118682.html      

   <html>
   <title></title>
   <head>
      <script>
   function selectRow(target)  
{  
var sTable = document.getElementById("ServiceListTable")  
for(var i=1;i<sTable.rows.length;i++) //遍历除第一行外的所有行  
{  
if (sTable.rows[i] != target) //判断是否当前选定行  
{  
sTable.rows[i].bgColor = "#ffffff"; //设置背景色  
sTable.rows[i].onmouseover = resumeRowOver; //增加onmouseover 事件  
sTable.rows[i].onmouseout = resumeRowOut;//增加onmouseout 事件  
}  
else 
{  
sTable.rows[i].bgColor = "#d3d3d3";  
sTable.rows[i].onmouseover = ""; //去除鼠标事件  
sTable.rows[i].onmouseout = ""; //去除鼠标事件  
}  
}  
}  
//移过时tr的背景色  
function rowOver(target)  
{  
target.bgColor='#e4e4e4';  
}  
//移出时tr的背景色  
function rowOut(target)  
{  
target.bgColor='#ffffff';  
}  
//恢复tr的的onmouseover事件配套调用函数  
function resumeRowOver()  
{  
rowOver(this);  
}  
//恢复tr的的onmouseout事件配套调用函数  
function resumeRowOut()  
{  
rowOut(this);  

 //点击当前选中行的时候设置当前行的颜色,同时恢复除当前行外的行的颜色及鼠标事件
 function selectRow(target)
 {
 var sTable = document.getElementById("ServiceListTable")
 for(var i=1;i<sTable.rows.length;i++) //遍历除第一行外的所有行
 {
 if (sTable.rows[i] != target) //判断是否当前选定行
 {
 sTable.rows[i].bgColor = "#ffffff"; //设置背景色
 sTable.rows[i].onmouseover = resumeRowOver; //增加onmouseover 事件
 sTable.rows[i].onmouseout = resumeRowOut;//增加onmouseout 事件
 }
 else
 {
 sTable.rows[i].bgColor = "#d3d3d3";
 sTable.rows[i].onmouseover = ""; //去除鼠标事件
 sTable.rows[i].onmouseout = ""; //去除鼠标事件
 }
 }
 }
 //移过时tr的背景色
 function rowOver(target)
 {
 target.bgColor='#e4e4e4';
 }
 //移出时tr的背景色
 function rowOut(target)
 {
 target.bgColor='#ffffff';
 }
 //恢复tr的的onmouseover事件配套调用函数
 function resumeRowOver()
 {
 rowOver(this);
 }
 //恢复tr的的onmouseout事件配套调用函数
 function resumeRowOut()
 {
 rowOut(this);
 } 


   </script>
   </head>
   <body>

<table width="100%" border="0" cellspacing="0" cellpadding="0" id="ServiceListTable"> 
<tr> 
<th>服务事项</th> 
<th>N</th> 
<th>状态</th> 
<th>办结</th> 
<th>资料</th> 
</tr> 
<tr onmouseover="rowOver(this)" onmouseout="rowOut(this)" onclick="selectRow(this)"> 
<td>相关内容</td> 
<td align="center">&nbsp;</td> 
<td align="center">&nbsp;</td> 
<td align="center">&nbsp;</td> 
<td align="center">&nbsp;</td> 
</tr> 
<tr onmouseover="rowOver(this)" onmouseout="rowOut(this)" onclick="selectRow(this)"> 
<td>相关内容</td> 
<td align="center">&nbsp;</td> 
<td align="center">&nbsp;</td> 
<td align="center">&nbsp;</td> 
<td align="center">&nbsp;</td> 
</tr> 
<tr onmouseover="rowOver(this)" onmouseout="rowOut(this)" onclick="selectRow(this)"> 
<td>相关内容</td> 
<td align="center">&nbsp;</td> 
<td align="center">&nbsp;</td> 
<td align="center">&nbsp;</td> 
<td align="center">&nbsp;</td> 
</tr> 
<tr onmouseover="rowOver(this)" onmouseout="rowOut(this)" onclick="selectRow(this)"> 
<td>相关内容</td> 
<td align="center">&nbsp;</td> 
<td align="center">&nbsp;</td> 
<td align="center">&nbsp;</td> 
<td align="center">&nbsp;</td> 
</tr> 
</table> 


   </body>
</html>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值