EasyUI Tree判斷節點是否是葉


方法1:  $('#domaincatalog').tree('isLeaf', node.target); 返回true或false ,true表示是葉節點, false即不是

 

方法2:官方文檔中:看到每個節點都有一些屬性,其中一個是state,我們就通過這個state來判斷。state有兩個值 open和closed表示當前節點 打開和關閉了樹的狀態。當state等於undefined的時候就表示當前節點是Leaf 葉了。

在tree的onclick事件上添加判斷代碼如下

復制代碼
$("#domaincatalog").tree({
            url: 'http://www.cnblogs.com/Ajax/sys/DomainService.ashx?Method=GetAllDomain',
            method: "post",
            //onlyLeafCheck: true,//只有根節點才能被選中
            animate: false,
            onClick: function (node) {
                if (node.state == undefined) {
                    alert("this is leaf");
                }
                //初始化右側頁面數據
                var domainID = "0"; //默認是根域0
                var node = $("#domaincatalog").tree('getSelected'); //獲取樹選中的節點
                if (node) {
                    domainID = node.id;
                }
                this.formId = "#form_center"; //注意這里設置formID的時候 一定要加上#
                this.url = "http://www.cnblogs.com/Ajax/sys/DomainService.ashx?Method=Save";
                if (domainID != "0") {
                    initTool.initDetails(domainID);
                }
                else {
                    $.messager.show({
                        title: '系統消息',
                        msg: '根域無法查詢....'
                    });
                }
            },
        });
復制代碼

 EasyUI Tree 默認選中跟節點

復制代碼
onLoadSuccess: function (node, data) {//數據加載完成事件
                var rootNode = data[0].children[0];
                if (rootNode) {
                    //alert(rootNode.id);
                }
                var rootNode = $("#domainTree").tree("getRoot"); //獲取根節點
                $("#domainTree").tree("select",rootNode.target);//根節點 被選中,選中的同時也是執行了點擊的事件
            }
復制代碼

 

 發現個BUG, Tree的select方法在最新版火狐20下 沒有選中的效果,但是執行了選中后的事件。在IE和谷歌並無此問題!

jquery easyUI tree 搜索節點

 

復制代碼
link href="/Easyui3c/themes/icon.css" rel="stylesheet" type="text/css" />
 
 
 //檢索樹的節點
            $("#btnSearchTree").click(function () {
                var key = $.trim($("#txtKeyword").val());
                if (key.length > 0) {
                    //遍歷樹的所有的節點,span標簽的class屬性包含tree-title的element元素
                    $("span[class*='tree-title']").each(function (i, data) {
                        var text = $(this).html().toString();
                        if (text.indexOf(key) != -1) {
                            $(this).addClass("highlight");
                        }
                        else {
                            $(this).removeClass("highlight");
                        }
                    });
                }
                else {
                    $("span[class*='tree-title']").each(function (i, data) {
                        if ($(this).hasClass("highlight")) {
                            $(this).removeClass("highlight");
                        }
                    });
                }
            });
            
 <style type="text/css">
        .highlight{font-weight:bold;color:Red;}
</style>

 &nbsp;&nbsp;<input id="txtKeyword" type="text" style="height:20px;line-height:20px;width:120px;" />
  <a href="#" id="btnSearchTree" class="easyui-linkbutton" iconcls="icon-search" plain="true">
  搜索</a>     


 $('#menutree').tree('expandAll'); //展開所有的節點才能提供給前台 節點搜索的功能!-----wjw 2014年1月7日9:46:32
                    //更新子節點的數量
                    $("#menutree > li > div[class*='tree-node']").each(function (i, data) {
                        var nodeCount = $(this).next().children("li").length;
                        var old = $(this).children("span[class*='tree-title']").html().toString();
                        var str = "";
                        if (old.indexOf("(") != -1) {
                            var bracket = old.indexOf("(");
                            str = old.substring(0, bracket);
                        }
                        else {
                            str = old;
                        }
                        $(this).children("span[class*='tree-title']").html(str + "(" + nodeCount + ")");
                    });
復制代碼

 tree check: 獲取實心父節點

紅圈 標志的節點獲取方法。

getChecked:獲取所有選中的節點。'state'可用值有:'checked','unchecked','indeterminate'。如果'state'未指定,將返回'checked'節點。

var nodes = $('#tt').tree('getChecked');    // get checked nodes
var nodes = $('#tt').tree('getChecked', 'unchecked');    // 獲取未選擇節點
var nodes = $('#tt').tree('getChecked', 'indeterminate');    // 獲取不確定的節點
譯者注:(1.3.4新增獲取方式)
var nodes = $('#tt').tree('getChecked', ['unchecked','indeterminate']);

 

該圖片參考:http://blog.csdn.net/abccyz/article/details/38843973

后台取出數據,設置節點的選中狀態。父節點會根據子節點的選中狀態,自己更新自己選中的狀態,是選中 還是未確定。

因此后台取值的時候判斷當前節點是否有子節點,如果有子節點則不設置選中狀態。只有當是根節點的時候才去選中當前節點

復制代碼
 $.ajax({
            url: 'RoleService.ashx?Method=RoleSetMenu&roleID=' + roleid,
            async: true, //非異步 即同步
            dataType: "json",
            success: function (data) {
                if (data) {
                    $.each(data, function (index, row) {
                        var node = $('#tree_menu').tree('find', row.GC013_MENUID);//**先根據ID查找節點********
                        //判斷當前節點是否有子節點,如果有則不綁定了。父親節點會根據子節點綁定情況自己狀態改變
                        var children = $("#tree_menu").tree('getChildren', node.target);
                        if (children.length == 0) {
                            log3c("綁定節點:" + row.GC013_MENUID);
                            $('#tree_menu').tree('check', node.target);
                        }
                    });
                }
            },
            error: function () {
                log3c("讀取角色擁有的菜單錯誤。。。。。");
            }
        });
復制代碼

 Tree默認選中根節點的第一個節點

復制代碼
 onLoadSuccess: function (node, data) {//數據加載完成事件
                if (data.length > 0) {
                    var rootNode = data[0];
                    if (rootNode) {
                        var node1 = $('#Tree_Contract').tree('find', rootNode.children[0].id);
                        $('#Tree_Contract').tree('select', node1.target);
                    }

                }
            }
復制代碼

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM