BEHAVIORを使ったテーブルの選択した行の背景を変更するプログラム。
別にBEHAVIORは使わんでもできると思うが・・・
test.html(HTML)
<html> <link href="stylesheet.css" rel="stylesheet" type="text/css"> <script type="text/javascript" src="colorchange.js"></script> <body> <table> <tr rowNum="1" class="line0"> <td>aa</td><td>aa</td> <td> <table> <tr> <td>aa</td><td>aa-1</td> </tr> <tr> <td>bb</td><td>aa-2</td> </tr> <tr> <td>cc</td><td>aa-3</td> </tr> </table> <td> </tr> <tr rowNum="2" class="line0"> <td>bb</td><td>bb</td> </tr> <tr rowNum="3" class="line0"> <td>cc</td><td>cc</td> </tr> </table> <body> </html>
/*** color style start ***/ .line0 { height : 23px; vertical-align: middle; background-color: #ECFDFF; border-right: #77B4EA 1px solid; border-top: #77B4EA 1px solid; border-left: #77B4EA 1px solid; border-bottom: #77B4EA 1px solid; BEHAVIOR:url("rowcolor.htc"); font-family:"MS ゴシック"; }
rowcolor.htc BEHAVIORファイル。イベントを定義している。
<public:component> <public:attach event="onmouseover" onevent="rowActive(element)" /> <public:attach event="onmouseout" onevent="rowNonActive(element)" /> </public:component>
colorchange.js (BEHAVIORから呼ばれるJs)
// 選択した行の背景色を変える function rowActive(obj) { if ( typeof(obj.defaultColor) == "undefined" ) { obj.defaultColor = obj.style.backgroundColor; } obj.style.backgroundColor="red"; sibling0 = obj; } // 選択が解除された行の背景色を変える function rowNonActive(obj) { obj.style.backgroundColor=obj.defaultColor; }