ztree

烟花易冷沧海月明 2015-02-06 06:40:27
怎样监听ztree异步加载是否完成
代码如下:
var node1=treeObj.getNodeByParam("id", deptId, null);
treeObj.expandNode(node1); //展开节点
var node2 = treeObj.getNodesByFilter(function(node) {//获取展开节点中的一个节点
return (creatorName == node.name);
}, true);
console.log(node2);
treeObj.selectNode(node2);
获取不了 因为是异步加载,所以还没加载完就执行了获取节点的方法 所以为null
请问怎样监听异步加载是否完成 完成后再执行此方法 没有完成等待其完成再继续执行?????
...全文
244 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
samin_zou 2017-05-24
  • 打赏
  • 举报
回复
重载这个方法就可以了 onAsyncSuccess
samin_zou 2017-05-24
  • 打赏
  • 举报
回复
这个不是很简单吗? 只需要把你写的方法写在回调函数中就可以了 ztree加载成功后 有个回调函数的 你看看文档就知道初始化的时候怎么去定义了
dningcheng 2017-05-24
  • 打赏
  • 举报
回复
这个问题解决了么,最近也在用ztree异步加载节点数据没遇到什么问题,如果需要我可以给你看看代码,你去使用他的一个专门异步加载节点的API叫什么reSyscn什么的
  • 打赏
  • 举报
回复
代码如下 请举出具体实现监听ztree异步加载方法 var setting = { view : { selectedMulti : false }, data : { simpleData : { enable : true, treeNodeKey : "id", treeNodeParentKey : "pId", rootPId : 23 } }, async : { enable : true, dataType : "json", url : "/personalTeamJournal/loadTree.json", autoParam : ["id"], dataFilter : filter }, callback : { onClick : zTreeOnClick, onAsyncSuccess : onAsyncSuccess } }; function filter(treeId, parentNode, resp) { return; } function onAsyncSuccess(event, treeId, treeNode, resp) { var nodes = resp.deptList; for(var i in nodes){ if(nodes[i].type==="dept"){ nodes[i].isParent = true; }else{ nodes[i].isParent = false; } } $.fn.zTree.getZTreeObj(treeId).addNodes(treeNode, nodes); ////console.log(zNodes); //var treeObj = $.fn.zTree.init($("#peopleTree"), setting, zNodes); //var rootNode = $.fn.zTree.getZTreeObj(treeId).getNodeByParam("level", 0, null); //treeObj.expandNode(rootNode, true, false, true); } function zTreeBeforeClick(treeId, treeNode, clickFlag) { //console.log("zTreeBeforeClick", arguments); return !treeNode.isParent; //当是父节点 返回false 不让选取 } function zTreeOnClick(event, treeId, treeNode) { if (treeNode.type == "user") { loadJournal(treeNode.id, treeNode.name); searchJournal(treeNode.id); } else if (treeNode.type == "dept") { confirmOperte("您选择的不是员工.", 250, 140); } } function loadJournal(creatorId, creatorName) { $("#creatorId").val(creatorId); $("#creatorName").val(creatorName); $("#creator").val(creatorName); } function searchJournal(treeNodeId) { var startDate = $("#startDate").val(); var endDate = $("#endDate").val(); var status = $("#status").val(); var creatorId = $("#creatorId").val(); var titleLike = $("#search_title").val(); var creator = $("#creator").val(); var creatorName = $("#creatorName").val(); if (creatorName != creator) { if (creator != '') { $("#creatorName").val(creator); creatorName = $("#creatorName").val(); } else { $("#creator").val(creatorName); } } if (creatorName == '') { confirmOperte("请单击选择要查看的的员工.", 250, 140); return; } //模拟树节点的点击事件 if (creatorName != '' && isNaN(treeNodeId)) { var treeObj = $.fn.zTree.getZTreeObj("peopleTree"); var nodes = treeObj.getNodes(); var node = treeObj.getNodesByFilter(function(node) {//监听是否有此节点 return (creator == node.name); }, true); var deptId=null; if(!node){ $.ajax({ async: false, type: "POST", dataType: "json", url: "/personalTeamJournal/getDeptId.json", data : { creatorName : creatorName }, error: function(){ alert("请求节点数据失败,"); }, success: function(data) { deptId = data.deptId; } }); if(deptId==null){ alert("您没有此下属员工"); return; } var node1 = treeObj.getNodeByParam("id", deptId, null); treeObj.expandNode(node1); console.log(node1); var node2 = treeObj.getNodeByParam("id", creatorName, node1); //获取不到 treeObj.selectNode(node2); }else{ treeObj.selectNode(node); treeObj.setting.callback.onClick(null, treeObj.setting.treeId, node); } } $("#pageBody").load("/personalTeamJournal/search.jhtml", { "subList" : "1", "creatorId" : creatorId, "startDate" : startDate, "endDate" : endDate, "titleLike" : titleLike, "creatorName" : creatorName }, function() { init(); }); }
洋洋2018 2015-02-09
  • 打赏
  • 举报
回复
你可以放在回调函数内吧,,把结果赋值给全局变量,然后直接获取全局变量应该就可以啦!~~ 希望对你有用!
u010800530 2015-02-07
  • 打赏
  • 举报
回复
用$.ajax()方法,这个方法内部提供了一个加载成功后的函数

81,106

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧