随手写的一个动态添加删除行的HTC行为组件[1]

[入库:2005年8月18日] [更新:2007年3月25日]

本文简介:选择自 mybios 的 blog

<!--***************dtable.htc*******************-->
<method name=addnew><method/>
<method name=del><method/>
<method name=lighton><method/>
<property name=nowrow><property/>
<property name=overid><property/>
<property name=myid><property/>
<property name=color0><property/>
<property name=color1><property/>
<attach event="oncontentready" onevent="init()" />
<script language=javascript>
function init()
{
 color0="#f8f4e4";     //行间隔色
 color1="#f0f0e8";      //行间隔色
 myid=0;
 nowrow=0;
 overid=1;
 element.cellspacing=1;
 element.cellpadding=1;
 element.border=0;
 element.bgcolor="#999999";   //边框颜色
 element.delcolor="#ffcc99";//删除按钮颜色
 element.delcolorover="#6699ff";//删除按钮颜色
 var baserow=element.rows[0];
 baserow.bgcolor="#d8c8a8";    //标题行底色
 baserow.style.cursor="default";
 lastrow=element.rows[element.rows.length-1];
 t=element;
 initcolor();
//-----------------开始初始化已经存在的行----------------------
 for (i=1;i<t.rows.length;i++)
 {
  t.rows[i].style.backgroundcolor=eval("color"+i%2);
  t.rows[i].attachevent("onclick",lighton);
  t.rows[i].style.cursor="default";
  t.rows[i].cells[0].style.backgroundcolor=element.delcolor;
  t.rows[i].cells[0].style.cursor="hand";
  t.rows[i].cells[0].attachevent("onclick",delit);
  t.rows[i].cells[0].attachevent("onmouseover",delmouseover);
  t.rows[i].cells[0].attachevent("onmouseout",delmouseout);
 }
//------------开始备份最后一行为动态表复制元素----------------- 

 t.tr_classname=lastrow.classname;
 t.tr_csstext=lastrow.style.csstext;
 t.td_count=lastrow.cells.length;
 backupevent("element.rows[element.rows.length-1]","tr");
 for(i=0;i<lastrow.cells.length;i++)
 {
  backupevent("element.rows[element.rows.length-1].cells["+i+"]","td"+i);
  t.td_csstext=lastrow.cells[i].style.csstext;
  eval("t.td_innerhtml"+i+"=lastrow.cells[i].innerhtml");
 }
//-------------------------备份完成----------------------------


}
function delmouseover()
{
 ln=rowid();
 element.rows[ln].cells[0].style.backgroundcolor=element.delcolorover;
}
function delmouseout()
{
 ln=rowid();
 element.rows[ln].cells[0].style.backgroundcolor=element.delcolor;
}
function lighton(line)
{
 ln=(line==null||line=="[object]")?rowid():line;
 row=element.rows[ln];
 initcolor();
 row.style.backgroundcolor="#33ffff";
 lightcolor(ln);
 nowrow=ln;
}
function delit()
{
 ln=rowid();
 if(element.rows.length!=2)
 {
  element.deleterow(ln);
  initcolor();
 }
}
function del(line)
{
 element.deleterow(line);
 initcolor();
}
function rowid()
{
 row=window.event.srcelement;
 while(row.tagname!="tr")row=row.parentelement;
 return(row.rowindex);
}
function initcolor()
{
 for (i=1;i<element.rows.length;i++)
 {
  element.rows[i].style.backgroundcolor=eval("color"+i%2);
  for(j=0;j<element.rows[i].cells.length;j++)
  {
   for(k=0;k<element.rows[i].cells[j].childnodes.length;k++)
   {
    if(element.rows[i].cells[j].childnodes[k].style!=undefined)
     element.rows[i].cells[j].childnodes[k].style.backgroundcolor=eval("color"+i%2);
   }
  }
 }
}
function lightcolor(ln)
{
 i=ln;
 element.rows[i].style.backgroundcolor="#33ffff";
 for(j=0;j<element.rows[i].cells.length;j++)
 {
  for(k=0;k<element.rows[i].cells[j].childnodes.length;k++)
  {
   if(element.rows[i].cells[j].childnodes[k].style!=undefined)
    element.rows[i].cells[j].childnodes[k].style.backgroundcolor="#33ffff";
  }
 }

}
function addnew(line)
{
 ln=(line==null||line=="[object]")?element.rows.length:line;
 element.insertrow();
 for(i=0;i<element.td_count;i++)
 {
  element.rows[ln].insertcell();
 }
 element.rows[ln].style.csstext=element.tr_csstext;
 element.rows[ln].classname=element.tr_classname;
 restoreevent("element.rows["+ln+"]","tr");
 cell=element.rows[ln].cells;
 for(i=0;i<cell.length;i++)
 {

本文关键:HTC,动态表,行为
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top