当前位置: 代码迷 >> Web前端 >> JQuery兑现table的隔行换色和鼠标移动事件
  详细解决方案

JQuery兑现table的隔行换色和鼠标移动事件

热度:147   发布时间:2012-11-22 00:16:41.0
JQuery实现table的隔行换色和鼠标移动事件



是不是很漂亮的表格效果,下面是使用jQuery的实现代码:
<!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>
	<title>Hello World jQuery!</title>
	<script type="text/javascript" src="scripts/jquery-1.4.2.js"></script>
	<!--将jQuery引用进来-->
	<script type="text/javascript">
		$(document).ready(function(){ //这个就是传说的ready
			$(".stripe tr").mouseover(function(){
				//如果鼠标移到class为stripe的表格的tr上时,执行函数
				$(this).addClass("over");}).mouseout(function(){
					//给这行添加class值为over,并且当鼠标一出该行时执行函数
					$(this).removeClass("over");}) //移除该行的class
			$(".stripe tr:even").addClass("alt");
			//给class为stripe的表格的偶数行添加class值为alt
		});
	</script>
	<style type="text/css">
th {
	background:#0066FF;
	color:#FFFFFF;
	line-height:20px;
	height:30px;
}
td {
	padding:6px 11px;
	border-bottom:1px solid #95bce2;
	vertical-align:top;
	text-align:center;
}
td * {
	padding:6px 11px;
}
tr.alt td {
	background:#ecf6fc; /*这行将给所有的tr加上背景色*/
}
tr.over td {
	background:#bcd4ec; /*这个将是鼠标高亮行的背景色*/
}
	</style>
</head>
<body style="background-color: #FFF">
	<table class="stripe" width="50%" border="0" cellspacing="0" cellpadding="0">
		<!--用class="stripe"来标识需要使用该效果的表格-->
		<thead>
			<tr>
				<th>姓名</th>
				<th>年龄</th>
				<th>QQ</th>
				<th>Email</th>
			</tr>
		</thead>
		<tbody>
			<tr>
				<td>Java</td>
				<td>23</td>
				<td>31540205</td>
				<td>Java@gmail.com</td>
			</tr>
			<tr>
				<td>Javascript</td>
				<td>23</td>
				<td>31540205</td>
				<td>Javascript@126.com</td>
			</tr>
			<tr>
				<td>jQuery</td>
				<td>23</td>
				<td>31540205</td>
				<td>jquery@gmail.com</td>
			</tr>
			<tr>
				<td>c_cpp</td>
				<td>23</td>
				<td>31540205</td>
				<td>c_cpp@gmail.com</td>
			</tr>
			<tr>
				<td>python</td>
				<td>23</td>
				<td>31540205</td>
				<td>python@gmail.com</td>
			</tr>
			<tr>
				<td>Ruby</td>
				<td>23</td>
				<td>31540205</td>
				<td>Ruby@gmail.com</td>
			</tr>
		</tbody>
	</table>
</body>
</html>

这里有一个jQuery的技巧不得不提一下:jQuery的链式操作,什么是链式操作呢? 我们来看看,本来应该写
成这样子的:
$(".stripe tr").mouseover(function(){
$(this).addClass("over");})
$(".stripe tr").mouseout(function(){
$(this).removeClass("over"); })

但是我们写成了:
$(".stripe tr").mouseover(function(){
$(this).addClass("over");}).mouseout(function(){
$(this).removeClass("over");})

在jQuery中,执行完mouseover或者mouseout等方法之后,都会返回当前的对象,所以可以进行链式操作

说明:该代码出自于15 Days of jQuery(Day 2)---很容易的制作双色表格,版权归原作者所有
  相关解决方案