本人在使用 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樹修改 父節點選擇的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持。