方法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>
<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);
}
}
}

