最近带个项目,用的easyui1.3.2版本,发现combotree这个控件用起来不是很人性化,所以就把它的源代码进行了修改,可恨的是源码都经过了加密处理,看起来很是不爽,不过我还是找到了相应的代码,并进行了修改,在我的电脑上测试是没有问题的,如果大家用着有问题可以一起讨论解决!说正题,如下
用的时候发现的问题有如下2点:
1.点击树枝也可以选择,实际应用中大家应该都希望只有点击树叶时才能选择
2.只有点击三角图标才可以展开/收缩,这个及其不方便,那个三角图标又小,改善后点击整个NODE都可以展开/收缩
代码如下:
原代码:
}).bind("click",function(e){ var tt=$(e.target); var _b1=tt.closest("div.tree-node"); if(!_b1.length){ return; } if(tt.hasClass("tree-hit")){ _119(_ad,_b1[0]); return false; }else{ if(tt.hasClass("tree-checkbox")){ _d9(_ad,_b1[0],!tt.hasClass("tree-checkbox1")); return false; }else{ _157(_ad,_b1[0]); _ae.onClick.call(_ad,_b4(_ad,_b1[0])); } } e.stopPropagation(); }).bind("dblclick",function(e){
修改后的代码:
}).bind("click",function(e){ var tt=$(e.target); var _b1=tt.closest("div.tree-node"); if(!_b1.length){ return; } /** * 修改于2013-10-22 * 作用: * 新加的属性onlySelectLeaf:只有点击树叶才被选中,默认为否 * 1.只有点击树叶才被选中(之前点击树枝也可以选择) * 2.点击整个节点都可以展开/收缩(之前只有点击三角图标才可以展开/收缩) */ if(tt.hasClass("tree-checkbox")){ _d9(_ad,_b1[0],!tt.hasClass("tree-checkbox1")); return false; }else{ if(tt.parent().children("span.tree-file").length || (!_ae.onlySelectLeaf && !tt.hasClass("tree-hit"))){ _157(_ad,_b1[0]); _ae.onClick.call(_ad,_b4(_ad,_b1[0])); }else{ _119(_ad,_b1[0]); return false; } } /*********** end ***********/ e.stopPropagation(); }).bind("dblclick",function(e){ 把下面的代码覆盖到上面的代码及可,这个只适用1.3.2其它版本的源代码我没试,可能不一样