1. 程式人生 > >js Table滑鼠滑過變色,單擊變色,隱藏某列的方法

js Table滑鼠滑過變色,單擊變色,隱藏某列的方法

  1. /**
  2.         *table變色方法 
  3.         *
  4.         *@param tableId 需要設定變色的table的ID
  5.         *@param overColor 滑鼠經過(懸浮在此行上)的顏色
  6.         *@param outColor 滑鼠離開此行後的顏色
  7.         *@param clickColor 滑鼠單擊此行的顏色
  8.         */
  9.         function setTableColor(tableId, overColor,outColor, clickColor) {
  10.                 //獲取此table裡的tr陣列
  11.                 var trs = document.getElementById(tableId).getElementsByTagName("tr");
  12.                 //單擊行
  13.                 var clickTR=null;
  14.                 //遍歷tr陣列
  15.                 for ( var i = 0; i < trs.length; i++) {
  16.                         //繫結單擊事件
  17.                         trs[i].onclick = function() {
  18.                                 //this.x這裡的isClick是自己指定的,只是為了標識此行是否被單擊過了true為單擊了,false為未單擊
  19.                                 if (this.isClick != true) {
  20.                                         //如果此行為單擊,則設定為已單擊
  21.                                         this.isClick=true;
  22.                                         //clickTR是之前單擊行的物件,判斷是否為空(即該table未被單擊過),是否是當前物件(單擊的是否是已單擊過的)
  23.                                         if(clickTR!=null&&clickTR!=this){
  24.                                                 //如果都不是,則設定clickTR顏色為背景色(滑鼠離開行的顏色),並且是指此行為未單擊
  25.                                                 clickTR.isClick=false;
  26.                                                 clickTR.style.backgroundColor = outColor;
  27.                                         }
  28.                                         //設定this(當前單擊行物件)的背景色為指定的單擊顏色
  29.                                         this.style.backgroundColor = clickColor;
  30.                                         //儲存當前單擊物件
  31.                                         clickTR=this;
  32.                                 } else {
  33.                                         //如果單擊的是已經單擊的物件,則視為取消單擊
  34.                                         this.isClick=false;
  35.                                 }
  36.                         }
  37.                         //繫結滑鼠懸浮行事件
  38.                         trs[i].onmouseover = function() {
  39.                                 if (this.isClick!=true)//如果是未單擊則設定背景色為滑鼠懸浮行顏色
  40.                                         this.style.backgroundColor = overColor;
  41.                         }
  42.                         //滑鼠離開行事件
  43.                         trs[i].onmouseout = function() {
  44.                                 if (this.isClick!=true)//如果是未單擊則設定背景色為滑鼠離開行顏色
  45.                                         this.style.backgroundColor = outColor;
  46.                         }
  47.                 }
  48.         }
  49.         /**
  50.         *隱藏Table某一列的方法
  51.         *
  52.         *@param tableId 需要設定隱藏列的table的ID
  53.         *@param clnIndex 需要隱藏的列的索引
  54.         */
  55.         function setHiddenCol(tableId, clnIndex) {
  56.                 var oTable = document.getElementById(tableId);
  57.                 var cell=null;//每一行需要隱藏的單元格
  58.                 //遍歷此table的行陣列
  59.                 for (i = 0; i < oTable.rows.length; i++) {
  60.                 cell=oTable.rows[i].cells[clnIndex];
  61.                         cell.style.display = cell.style.display == "none" ? "block": "none";
  62.                 }
  63.         }
  64.         //頁面載入完成後,呼叫相關方法
  65.         window.onload = function() {
  66.                 setTableColor('showList', '#9CCEF8', '#F5FAFF', '#7CFC00');
  67.                 setHiddenCol('showList', 0);
  68.         }