您的位置:首页 > Web前端 > JavaScript

运用dtree组件动态生成带复选框的目录树

2011-07-24 16:42 489 查看
1.给树对象的 config 对象添加一个控制 checkbox 是否显示的属性;
view plainthis.config = {  
  target      : null,  
  folderLinks    : true,  
  useSelection   : true,  
  useCookies    : true,  
  useLines     : true,  
  useIcons     : true,  
  useStatusText   : false,  
  closeSameLevel : false,  
  inOrder      : false,  
  check:true   //**新加的  
}   
 2.修改节点对象的 toString()方法,添加...input type="checkbox"...代码;在dtree 的dTree.prototype.node = function(node, nodeId)方法的if (this.config.useIcons)最后加上:
view plainif(this.config.check==true){  
      str+= '<input type="checkbox" id="c'+ this.obj + nodeId + '" onclick="javascript:'+this.obj+'.cc('+nodeId+')"/>';  
}  
3.写 checkbox 页面元素的 onclick 事件处理函数
 
view plaindTree.prototype.cc=function(nodeId){  
  
    var cs = document.getElementById("c"+this.obj+nodeId).checked;  
  
    var n,node = this.aNodes[nodeId];  
  
    var len =this.aNodes.length;  
  
    for (n=0; n<len; n++) {  
  
        if (this.aNodes
.pid == node.id) {              
  
            document.getElementById("c"+this.obj+n).checked=cs;           
  
            this.cc(n);           
  
        }         
  
    }  
  
    if(cs==false){    
  
        var clicknode=node  
  
        do{  
  
            for(j=0;j<len;j++){            
  
                if(this.aNodes[j].pid==clicknode.pid&&document.getElementById("c"+this.obj+j).checked==true){                 
  
                    return;  
  
                    }  
  
            }  
  
            if(j==len){   
  
                for(k=0;k<len;k++){  
  
                    if(this.aNodes[k].id==clicknode.pid){  
  
                        document.getElementById("c"+this.obj+k).checked=false;  
  
                        clicknode=this.aNodes[k];  
  
                        break;  
                    }     
  
                }  
  
            }  
  
        }while(clicknode.pid!=-1);    
  
    }  
  
    if(cs==true){  
  
        var pid=node.pid;  
  
        var bSearch;  
  
        do{  
  
            bSearch=false;  
  
            for(n=0;n<len;n++){  
  
                if(this.aNodes
.id==pid){  
  
                    document.getElementById("c"+this.obj+n).checked=true;  
  
                    pid=this.aNodes
.pid;  
  
                    bSearch= true;      
  
                    break;  
  
                }  
  
            }  
  
        }while(bSearch==true);  
  
   }  
  
}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  function javascript c null