zTree禁止點擊部門

今天遇到一個問題,做報告需要選擇一個團隊負責人,用zTree做展示。但是隻能選擇員工,而不能選擇部門,所以需要判斷當前點擊節點是否爲員工節點,而非部門節點。

此情況的特殊性在於:當部門員工爲空時,部門節點不是父節點,但是不應該被選擇。所以不應該用是否爲父節點來判斷,而是用level(根節點 level = 0,依次遞增)來判斷。

解決:

function getSelected() {
    var nodes = zTree.getSelectedNodes();
    //不能點擊部門,只能選擇員工
    if (nodes[0].level == 0) {
        alert("請選擇員工!");
        return;
    }
    //其它邏輯處理
}
  1. 能否用isParent來判斷,答案是不能。因爲當部門下沒有員工時,此節點雖然不是父節點(沒有員工子節點),但是不應該被選擇。

  2. 能否用.children.length來判斷,能,比較麻煩。因爲.children屬性只有包含子節點的時候纔有,否則是undefined

//獲得點擊節點
function getSelected() {
    var nodes = zTree.getSelectedNodes();
    console.log(nodes)
}

當所選節點有子節點時:nodes[i]有一個屬性children,是一個子節點數組,使用nodes[0].children.length可以獲取點擊節點的子節點個數。
這裏寫圖片描述
這裏寫圖片描述

當所選節點無子節點時:nodes[I]沒有children屬性,這是直接用nodes[0].children.length必然報錯,因爲nodes[0].childrenundefined
這裏寫圖片描述
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章