1. 程式人生 > >ztree中模糊查詢,每次查詢關閉上次查詢到的節點,重新展開

ztree中模糊查詢,每次查詢關閉上次查詢到的節點,重新展開

在ztree中使用模糊查詢時第一次查詢出來的結果選中,第二次查詢要求關閉第一次的查詢結果重新展開符合第二次的查詢結果

在js中使用expandAll(false);但是expendAll(false)在與expandNode一起使用時出現異常,在用斷點模式查詢發現,expendAll(false)關閉所有節點時總是在方法執行完之後,因為ztree的展開和摺疊是使用jQuery的動畫完成,是一個非同步過程在方法執行完之後,在執行到expandNode時,全部關閉的摺疊動畫可能還沒有執行完,導致頁面摺疊混亂,出現如下效果


處理方式是 expandAll (false)的時候,關閉動畫效果,全部關閉後,再開啟動畫效果即可程式碼如下


// Bom tree檢索
function checkNodes2() {
    console.log("ssssssss");
    var name = $("#checkNodes").val();
    if(name ==""){
        var treeObj = $.fn.zTree.getZTreeObj("modelcarztree");
        treeObj.cancelSelectedNode();
        treeObj.expandAll(false);
        return;
    }
    var treeObj = $.fn
.zTree.getZTreeObj("modelcarztree"); treeObj.cancelSelectedNode(); treeObj.setting.view.expandSpeed = ""; treeObj.expandAll(false); treeObj.setting.view.expandSpeed = "fast"; var node = treeObj.getNodesByParamFuzzy("name", name, null); for (var arg in node) { treeObj.selectNode
(node[arg], true,true );//指定選中ID的節點 treeObj.expandNode(node[arg], true, false);//指定選中ID節點展開 } }