做了一个带复选框的三级树,选择了父节点时自动选择所有的子节点,并且展开所有的子节点。现在的问题是,在IE7、IE8、火狐、谷歌浏览器都没有问题,但是在IE6下面有问题,表现如下:1、在所有节点收起来的时候,选择了第一级节点之后,所有节点均顺利展开,第二级节点选中了,但是第三级节点没有选中。2、所有节点展开之后,再次选中第一级节点,所有节点选中,但是收起第一级节点再展开发现之前选中的二三级节点均变为未选择了。代码如下:        var school = new Ext.tree.TreePanel({
border : false,
    autoScroll:true,
root : new Ext.tree.AsyncTreeNode({
id:"root",
text : '组织机构',
checked : false,
expanded : true//默认展开根节点

}),
hrefTarget : 'mainIframe',
loader: new Ext.tree.TreeLoader({   
        dataUrl:"/CIIP/roleManageAction!showSchool.action?roleID="+id // 获取树节点的地址  
    }),
    bbar:schTbar,
listeners : {
'render':function(){this.bbar.dom.align='center';}
}
}); school.on('checkchange',function(node,checked){
selChild(node,checked);
},school);
        function selChild(node,checkFlag){
            //checked?node.expand():node.collapse();
    if (!node.leaf) {
     node.expand();
        if(node.hasChildNodes()){
         node.attributes.checked=checkFlag;
            node.eachChild(function(child) {
                child.attributes.checked = checkFlag;
                var cb = child.ui.checkbox;
                if(cb) cb.checked = checkFlag;
                 selChild(child,checkFlag);
            });
        }
    }
        }

解决方案 »

  1.   

    是我说的不够清楚呢?
    还是问题放错地方了?
    还是上csdn的人少了?
      

  2.   

    这个EXJJS在不同浏览器有兼容性的问题很普遍也很普通。所以你的任务是要去尝试找到哪个地方导致IE6出现该错误的,然后相应的去重载源代码的方法或者自定义方法。
    还有EXTJS 不同的版本,也可能是不同的实现过程。所以你遇到的问题别人未必遇到。。
    只有自己尝试去找原因,找问题的根本。
      

  3.   

    如果选择了根节点,下面的所有节点的node.attributes.checked和node.ui.checkbox.checked都是true,school.getChecked()也都能拿出这些节点,但第三级节点前面的选择框就是没有打勾。IE6渲染的问题?搞不懂。