jquery ztree異步搜索(搜葉子)實踐
一、初始異步加載樹
初始化默認(rèn)給出一個根結(jié)點,再結(jié)合異步加載的方式手動觸發(fā)默認(rèn)加載第一層,如圖:

代碼如下:
var treeSetting = {
async: {
enable: true, <a rel="nofollow">url:"xxx/demo.do?method=listByTree</a>",
dataType:"json",
autoParam:["id=pid"]
},
view: {
dblClickExpand: true,
selectedMulti: false,
expandSpeed: ($.browser.msie && parseInt($.browser.version)<=6)?"":"fast"
},
data: {
simpleData: {
enable:true,
idKey: "id",
pIdKey: "pid",
rootPId: "root"
}
},
callback: {
onNodeCreated: zTreeOnNodeCreated
}
};
//默認(rèn)根結(jié)點
var rootNode = {"id":0, "pid":"root", "name":"商品分類", "open":true, "isParent":true};
$(document).ready(function(){
var zTreeObj = $.fn.zTree.init($("#tree"), treeSetting, rootNode);
var node = zTreeObj.getNodeByParam("id", 0, null);
zTreeObj.reAsyncChildNodes(node, "refresh");
});
二、異步搜索葉子結(jié)點
在使用JQuery ZTREE時可能要用到異步的方式模糊搜索葉子結(jié)點,如圖:

而如果只使用ZTREE自帶的展開方法zTreeObj.expandNode只是會展開改結(jié)點,無法觸發(fā)異步加載;這時候就必須手動調(diào)用異步加載的方法進(jìn)行處理,解決思路如下:
通過在otherParam數(shù)組中設(shè)值的方式將搜索參數(shù)帶到后臺(無參數(shù)時必須將otherParam設(shè)為空數(shù)組否則一直會將前一次的參數(shù)帶到后臺);在結(jié)點創(chuàng)建完成后的回調(diào)函數(shù)onNodeCreated中進(jìn)行手動異步加載。
代碼如下:
function searchM() {
var param = $.trim($("input[name='param']").val());
var treeObj = $.fn.zTree.getZTreeObj("tree");
var node = treeObj.getNodeByParam("id", 0, null);
if(param != ""){
param = encodeURI(encodeURI(param));
treeObj.setting.async.otherParam=["param", param];
}else {
//搜索參數(shù)為空時必須將參數(shù)數(shù)組設(shè)為空
treeObj.setting.async.otherParam=[];
}
treeObj.reAsyncChildNodes(node, "refresh");
}
function zTreeOnNodeCreated(event, treeId, treeNode) {
var param <span></span><span></span>= $.tr<span></span>im($("input[name='param']").val());
var treeObj = $.fn.zTree.getZTreeObj("tree");
//只有搜索參數(shù)不為空且該節(jié)點為父節(jié)點時才進(jìn)行異步加載
if(param != "" && treeNode.isParent){
treeObj.reAsyncChildNodes(treeNode, "refresh");
}
};
更多關(guān)于ztree控件的內(nèi)容,請參考專題《jQuery插件ztree使用匯總》 。
以上就是關(guān)于jquery ztree異步搜索的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助。
相關(guān)文章
輕松學(xué)習(xí)jQuery插件EasyUI EasyUI實現(xiàn)拖動基本操作
這篇文章主要幫大家輕松學(xué)習(xí)jQuery插件EasyUI,并利用EasyUI實現(xiàn)拖動基本操作,文章并提供了一個學(xué)校課程表簡單實例,感興趣的小伙伴們可以參考一下2015-11-11
jQuery移動頁面開發(fā)中的觸摸事件與虛擬鼠標(biāo)事件簡介
這篇文章主要介紹了jQuery移動頁面開發(fā)中的觸摸事件與虛擬鼠標(biāo)事件的簡單編寫方法,jQuery是當(dāng)今人氣最高的Javascript庫并被廣泛應(yīng)用于移動web的開發(fā),需要的朋友可以參考下2015-12-12
jQuery實現(xiàn)的動態(tài)伸縮導(dǎo)航菜單實例
這篇文章主要介紹了jQuery實現(xiàn)的動態(tài)伸縮導(dǎo)航菜單,實例分析了jQuery鼠標(biāo)事件及animate、hide等方法的使用技巧,需要的朋友可以參考下2015-05-05
jQuery easyui刷新當(dāng)前tabs的方法
這篇文章給大家介紹了jquery easyui刷新當(dāng)前tabs的方法,本文涉及到param參數(shù)的屬性知識點,本文通過實例給大家介紹的非常詳細(xì),具有參考借鑒價值,感興趣的朋友一起看看吧2016-09-09
jquery中g(shù)et,post和ajax方法的使用小結(jié)
本篇文章主要是對jquery中g(shù)et,post和ajax方法的使用進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-02-02

