15 Days of jQuery(Day 2)---很容易的制作雙色表格
這節本身沒有太多的價值,重點在它提供的這個例子上。我將代碼帖出來然后對重點部分注釋一下:我們先來看看Thewatchmakerproject傳統的做法:預覽地址(你可以查看一下源代碼)。再來看看jQuery是如何用5行代碼來搞定的:
<!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=gb2312" /> <title>StripingTable</title> <script src="jquery-latest.pack.js" type="text/javascript"></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> <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>鄧國梁</td> <td>23</td> <td>31540205</td> <td>gl.deng@gmail.com</td> </tr> <tr> <td>鄧國梁</td> <td>23</td> <td>31540205</td> <td>gl.deng@gmail.com</td> </tr> <tr> <td>鄧國梁</td> <td>23</td> <td>31540205</td> <td>gl.deng@gmail.com</td> </tr> <tr> <td>鄧國梁</td> <td>23</td> <td>31540205</td> <td>gl.deng@gmail.com</td> </tr> <tr> <td>鄧國梁</td> <td>23</td> <td>31540205</td> <td>gl.deng@gmail.com</td> </tr> <tr> <td>鄧國梁</td> <td>23</td> <td>31540205</td> <td>gl.deng@gmail.com</td> </tr> </tbody> </table> <p>PS: 飄飄說我的table沒有<thead>,我知錯了</p> </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等方法之后,都會返回當前的對象,所以可以進行鏈式操作
全站熱搜