การทำไฮไลท์แถวในตาราง ก็เพื่อให้ยูสเซ่อร์มองได้สะดวก เมื่อข้อมูลมันเยอะๆ ผลลัพธ์จะเป็นดังภาพครับ
มาดูกันครับว่าทำอย่างไร
โครงสร้าง HTML :
<table id="table"> <tr> <th>ลำดับ</th> <th>สาขา</th> </tr> <tr class='even' > <td>1</td> <td>สุรวงศ์</td> </tr> <tr class='odd' > <td>2</td> <td>เพชรบุรีตัดใหม่</td> </tr> <tr class='even' > <td>3</td> <td>รามอินทราทีมA</td> </tr> </table> |
ตกแต่งตารางด้วย CSS:
/* ใช้เพื่อแต่งตารางให้ดูดี */ #table .odd td { background:#eee; border-top:1px solid #DDDDDD; padding:3px; } #table .even td { border-top:1px solid #DDDDDD; padding:3px; } /* เตรียมไว้ทำไฮไลท์ ด้วย jQuery */ .highlight td { background:#FFFFCC !important; } |
ถ้าไม่เซตลงไปถึง td ie6 มันจะไม่ยอมแสดงผล
หลังจากนั้น include jQuery เข้ามา
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> |
เขียนโค้ดให้มันไฮไลท์ตอนเอาเมาส์ชี้เหนือแถว และกลับไปเหมือนเดิม เมื่อเมาส์ผ่านไป
$(function(){ //+ highlight row $('#table tr').mouseover(function(){ $(this).toggleClass('highlight'); }); $('#table tr').mouseout(function(){ $(this).toggleClass('highlight'); }); }) |
โค้ดทั้งหมดจะเป็นดังนี้
<!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" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<title>Highlight row</title>
<style>
/* ใช้เพื่อแต่งตารางให้ดูดี */
#table .odd td {
background:#eee;
border-top:1px solid #DDDDDD;
padding:3px;
}
#table .even td {
border-top:1px solid #DDDDDD;
padding:3px;
}
/* เตรียมไว้ทำไฮไลท์ ด้วย jQuery */
.highlight td {
background:#FFFFCC !important;
}
</style>
<script type="text/javascript">
$(function(){
//+ highlight row
$('#table tr').mouseover(function(){
$(this).toggleClass('highlight');
});
$('#table tr').mouseout(function(){
$(this).toggleClass('highlight');
});
})
</script>
</head>
<body>
<table id="table">
<tr>
<th>ลำดับ</th>
<th>สาขา</th>
</tr>
<tr class='even' >
<td>1</td>
<td>สุรวงศ์</td>
</tr>
<tr class='odd' >
<td>2</td>
<td>เพชรบุรีตัดใหม่</td>
</tr>
<tr class='even' >
<td>3</td>
<td>รามอินทราทีมA</td>
</tr>
</table>
</body>
</html> |






program says:
06/08/2552 at 06/08/2552
คลิ๊กที่ Live Demo ไม่เห็นมีสีเหมือนในรูปเลยครับ
administrator says:
06/08/2552 at 06/08/2552
ตายแล้วเพิ่งเห็นว่า เป็นบั๊กในไฟฟ้อก เดโม ถ้ารันด้วย ie จะเป็นอย่างภาพครับ
ขอแก้แมลงก่อน
administrator says:
06/08/2552 at 06/08/2552
แก้แล้วๆ ผมผิดเองแหละ ใส่คอมเม้นท์ใน css ผิด แทนที่จะเป็น
/* ใช้เพื่อแต่งตารางให้ดูดี */
ทะลึ่งใส่
<!– ใช้เพื่อแต่งตารางให้ดูดี –>
ผมผิดเอง ขอบคุณที่เม้นท์มานะครับ ท่านที่ได้อ่านหลังจากคอมเม้นท์นี้ โปรดทราบว่าโค้ดด้านบน ถูกต้อง 100% ครับ
mr.sing says:
07/08/2552 at 07/08/2552
แจ่มๆ ครับ ขอบคุณครับ..
sitti says:
27/08/2552 at 27/08/2552
สุดยอดครับ อยากเก่งเหมือท่าน platoosom จัง
ไปเอาความรู้มาจากไหนขอรับท่าน
administrator says:
27/08/2552 at 27/08/2552
ดูในบทความนี้ครับ http://www.select2web.com/jquery/jquery-changing-element-style.html
ผมได้เขียนอธิบายคำสั่ง toggleClass() ไว้แล้ว
คำสั่งในกลุ่มจัดการ css เอาไปประยุกต์ได้เพียบ
ต่อคำถามที่ว่า <ไปเอาความรู้มาจากไหนขอรับท่าน> ผมอ่านพื้นฐานจากหนังสือ jQuery in Action และ Learning jQuery
ซึ่งดาวน์โหลดได้ที่นี่ครับ http://www.select2web.com/ebook-downloads
sitti says:
27/08/2552 at 27/08/2552
เรียนท่าน platoosom ที่นับถือ
กระพ้มไปดาวน์โหลดแล้วนะครับ
หุหุหุ ภาษาฝรั่งทั้งนั้นแล – -”
ขอดูดความรู้จากท่านไปเรื่อยๆ ก่อนละกันนะครับ
ขอบคุณครับ