本人在使用 Easy UI 期间发现了一个不太适合项目的bug,可能也不算bug把 。 毕竟不同项目背景 取舍不同。
我在做网元树选择的时候 发现当选取父节点后,子节点都会被选择 返回 。但是如果我们选中父节点后没有必要选择子节点。 故对源脚本作适当修改
下拉框树修改 父节点选中后只显示父节点 取消返回子节点
修改方法 找到树的选择函数 进行遍历判断
查找关键字 combotree multiple
大约行数 10564
function _7d5(_7d6) { var opts=$.data(_7d6,"combotree").options; var tree=$.data(_7d6,"combotree").tree; var vv=[],ss=[]; if(opts.multiple){ var _7d7 = tree.tree("getChecked");//获得树的选择 for (var i = 0; i < _7d7.length; i++) { // if (tree.tree('isLeaf', _7d7[i].target)) { //如果当前节点是叶子节点 var pnode = tree.tree('getParent', _7d7[i].target); //获取当前节点的父节点 if (pnode) { var nopnode = true; for (var j = 0; j < i; j++) {//endfor遍历循环是否存在父节点 if (_7d7[j].id == pnode.id) { nopnode = false; } } if (nopnode == true) {//如果不存在父节点 vv.push(_7d7[i].id); ss.push(_7d7[i].text); } } // } //end是叶子节点 else { vv.push(_7d7[i].id); ss.push(_7d7[i].text); }//是根节点 }//end for //该处为源代码 //for(var i=0;i<_7d7.length;i++){ //vv.push(_7d7[i].id); //ss.push(_7d7[i].text); //}//end for //end if } else { var node=tree.tree("getSelected"); if(node){ vv.push(node.id); ss.push(node.text); } } $(_7d6).combo("setValues",vv).combo("setText",ss.join(opts.separator)); };
以上这篇浅谈EasyUi ComBotree树修改 父节点选择的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。