原来的写法
用ztree自带的异步加载完成后的回调(
//初始化
$(document)
.ready(function () {
var tree = $("#treeIndustryCategory");
var ztree=$.fn.zTree.init($("#treeIndustryCategory"), setting);
//初始化添加箭头标签
tree.addClass("showIcon");
if (ztree!=null) {
$("#treeIndustryCategory_1_a").click();
}
});
这样存在的问题是 单步调试可以实现 但是正常情况下无法实现点击第一个节点的目的
原因是 此时异步加载数据并没有进结束 点击事件需要在异步加载之后触发 因此采用以下方法
var setting = {
//异步加载
async: {
enable: true,
url: "/IndustryCategory/GetIndustryCategoryJson",
},
view: {
//自定义按钮
expandSpeed: "",
selectedMulti: false,
addDiyDom: addDiyDom,
showIcon: false,
showLine: false
},
edit: {
//设置可编辑
enable: true,
drag: {
prev: true,
next: true,
inner: false,
}
},
data: {
simpleData: {
enable: true
}
},
callback: {
//定义重命名,点击等回调
beforeRename: beforeRename,
onRename: zTreeOnRename,
onClick: zTreeOnClick,
beforeDrop: zTreeBeforeDrop,
onDrop: zTreeOnDrop,
onAsyncSuccess: showRight //异步加载数据完成后的回调函数
}
};
//初始化
$(document)
.ready(function () {
var tree = $("#treeIndustryCategory");
$.fn.zTree.init($("#treeIndustryCategory"), setting);
//初始化添加箭头标签
tree.addClass("showIcon");
});
//初始化点击事件 异步加载数据完成后调用
function showRight() {
if ($("#treeIndustryCategory_1_a").length > 0) {
$("#treeIndustryCategory_1_a").click();
}
}
用ztree自带的异步加载完成后的回调(
onAsyncSuccess
)触发要执行的函数是function showRight() 最终实现要实现的效果