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"; //默認是根域0var 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);}}}總結
以上是生活随笔為你收集整理的EasyUI Tree判断节点是否是叶的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最简单学会读心术(八个看人不走眼的秘诀)
- 下一篇: 特点跟特征有什么区别(特征与特点的区别举