$.fn.extend({ ztreeSearch : function(options) { // var _self=$(this); var defaults = { id : ‘‘, searchText :‘‘, setting : {} }; options = $.extend(defaults,options); var _object = $("#" + options.id); var allNodes =$(".ztreeSearch").data("data"); $.fn.zTree.init( _object, options.setting, allNodes); var ztree = $.fn.zTree.getZTreeObj(options.id); var nodes = ztree.getNodesByParamFuzzy("name", options.searchText, null);// 模糊搜索 var newNodes = new Array(); for(var i=0;i<nodes.length;i++){ var node = nodes[i]; var pNode =node.getParentNode(); var newNode = new Object(); if(null == pNode && node.id!= 0){ newNode.id =node.id; newNode.name =node.name; newNode.pid =node.pId; newNodes.push(newNode); }else{ if(‘0‘!=pNode.id){// 删除我的关注下网格 newNode.id =node.id; newNode.name =node.name; newNode.pid =node.pId; newNodes.push(newNode); } } } $.fn.zTree.init(_object, options.setting, newNodes); }, ztreeSearchClear : function(options){ var defaults = { id : ‘gridTree‘, searchTextId :‘search_grid_text‘, setting : {} }; options = $.extend(defaults,options); var allNodes =$(".ztreeSearch").data("data"); var _object = $("#"+options.id); $("#" + options.searchTextId).val(""); $.fn.zTree.init(_object, csetting, allNodes); } }); /** * post方式向后台请求数据 * * @param url * @param params * @param callback */ function sendXmlHttpRequest(url, params, callback) { $.ajax({ type : ‘POST‘, url : url, data : params, dataType : ‘json‘, success : function(data) { if (callback != undefined) { // 执行回调 window[callback](data); } }, error : function(data) { } }); } function MSMZtree(options){ var defaults = { id : ‘gridTree‘, searchTextId :‘search_grid_text‘, setting : {} }; options = $.extend(defaults,options); this.id = options.id ; this.searchTextId = options.searchTextId ; this.searchText = $(‘#‘ + options.searchTextId).val() ; this.setting = options.setting ; options.searchText = $(‘#‘ + options.searchTextId).val() ; } MSMZtree.prototype ={ ztreeSearch : function(){ var _object = $("#" + this.id); var allNodes =$(".ztreeSearch").data("data"); $.fn.zTree.init( _object, this.setting, allNodes); var ztree = $.fn.zTree.getZTreeObj(this.id); var nodes = ztree.getNodesByParamFuzzy("name", this.searchText, null);// 模糊搜索 var newNodes = new Array(); for(var i=0;i<nodes.length;i++){ var node = nodes[i]; var pNode =node.getParentNode(); var newNode = new Object(); if(null == pNode && node.id!= 0){ newNode.id =node.id; newNode.name =node.name; newNode.pid =node.pId; newNodes.push(newNode); }else{ if(‘0‘!=pNode.id){// 删除我的关注下网格 newNode.id =node.id; newNode.name =node.name; newNode.pid =node.pId; newNodes.push(newNode); } } } $.fn.zTree.init(_object, this.setting, newNodes); }, ztreeSearchClear : function(){ var allNodes =$(".ztreeSearch").data("data"); var _object = $("#"+this.id); $("#" + this.searchTextId).val(""); $.fn.zTree.init(_object, this.setting, allNodes); } }; 调用:var option ={ id : ‘bigmapheadtree‘, searchTextId : ‘search_grid_text‘, setting :bigmapheadtreesetting }; var msmZtree = new MSMZtree(option); msmZtree.ztreeSearchClear();
原文:http://www.cnblogs.com/clds/p/4927389.html