level 1
奇遇joy
楼主
zTree异步怎么实现不展开父节点,勾选父节点后其子节点也选上,我的代码在onExpand()方法中,如果有alert()弹出框,则可以获取到父节点下的子节点信息,如果没有alert()弹出框,则获取不到父节点下的子节点信息,但是能展开相应的父节点下的信息,麻烦大神帮忙解决一下,下面是我的代码:
var setting = {
check: {
enable : true, //设置zTree的节点上显示勾选框(checkbox或radio)
chkStyle: 'checkbox' //指定勾选框类型为checkbox(setting.check.enable=true时生效)
},
async : {
enable : true, //设置 zTree是否开启异步加载模式
url : "getName.action", //Ajax 获取数据的URL 地址
autoParam : ["id"] //异步加载时自动提交父节点属性的参数,假设父节点 node = {id:1, name:"test"},异步加载时,提交参数 zId=1
},
data:{ // 必须使用data
simpleData : {
enable : true,
idKey : "id", //id编号命名 默认
pIdKey : "pid",//父id编号命名默认
rootPId : 0 //用于修正根节点父节点数据,即 pIdKey 指定的属性值
}
},
// 回调函数
callback : {
onClick : function(event, treeId, treeNode, clickFlag) {
},
onCheck : function(e, treeId, treeNode) {
if(treeNode.isParent){
var zTree = $.fn.zTree.getZTreeObj("mytree");
zTree.expandNode(treeNode, true, true, false);
}
onExpand(event, treeId, treeNode);
},
//捕获异步加载出现异常错误的事件回调函数 和 成功的回调函数
onAsyncError : zTreeOnAsyncError,
onAsyncSuccess : function(event, treeId, treeNode, msg){
}
}
};
function onExpand(event, treeId, treeNode) {
var checked=treeNode.checked;
alert(1111);
if(treeNode.isParent){
var children=treeNode.children;
for(var i=0;i<children.length;i++){
var zTree = $.fn.zTree.getZTreeObj("mytree");
zTree.checkNode(children[i],checked,checked);
if(children[i].isParent){
zTree.expandNode(children[i], true, true, false);
}
onExpand(event, treeId, children[i]);
}
}
};
// 加载错误提示
function zTreeOnAsyncError(event, treeId, treeNode, XMLHttpRequest, textStatus, errorThrown) {
alert("加载错误:" + XMLHttpRequest);
};
// 过滤函数
function filter(treeId, parentNode, childNodes) {
if (!childNodes)
return null;
for ( var i = 0, l = childNodes.length; i < l; i++) {
childNodes[i].name = childNodes[i].name.replace(/\.n/g, '.');
}
return childNodes;
}
// 渲染
$(document).ready(function() {
var str = <%=jsonString%>;
var show = "<input type='text' style='width: 100px;display:none;' name='code' value='"+str.code+"'/>";
show += "<input type='text' style='width: 100px;display:none;' name='name' value='"+str.name+"'/>";
$("#condition").html(show);
$.fn.zTree.init($("#mytree"), setting);
resetDialogHeight();
});
//弹出窗口高度调整自适应
function resetDialogHeight(){
var height = document.body.scrollHeight;
var heightTop = document.body.scrollTop;
if ( window.XMLHttpRequest ) {
window.dialogHeight = (height+heightTop+295) + "px";
} else {
window.dialogHeight=(height+heightTop+55) + "px";//IE6不能自动调整高度,要加45
}
}
2017年11月23日 10点11分
1
var setting = {
check: {
enable : true, //设置zTree的节点上显示勾选框(checkbox或radio)
chkStyle: 'checkbox' //指定勾选框类型为checkbox(setting.check.enable=true时生效)
},
async : {
enable : true, //设置 zTree是否开启异步加载模式
url : "getName.action", //Ajax 获取数据的URL 地址
autoParam : ["id"] //异步加载时自动提交父节点属性的参数,假设父节点 node = {id:1, name:"test"},异步加载时,提交参数 zId=1
},
data:{ // 必须使用data
simpleData : {
enable : true,
idKey : "id", //id编号命名 默认
pIdKey : "pid",//父id编号命名默认
rootPId : 0 //用于修正根节点父节点数据,即 pIdKey 指定的属性值
}
},
// 回调函数
callback : {
onClick : function(event, treeId, treeNode, clickFlag) {
},
onCheck : function(e, treeId, treeNode) {
if(treeNode.isParent){
var zTree = $.fn.zTree.getZTreeObj("mytree");
zTree.expandNode(treeNode, true, true, false);
}
onExpand(event, treeId, treeNode);
},
//捕获异步加载出现异常错误的事件回调函数 和 成功的回调函数
onAsyncError : zTreeOnAsyncError,
onAsyncSuccess : function(event, treeId, treeNode, msg){
}
}
};
function onExpand(event, treeId, treeNode) {
var checked=treeNode.checked;
alert(1111);
if(treeNode.isParent){
var children=treeNode.children;
for(var i=0;i<children.length;i++){
var zTree = $.fn.zTree.getZTreeObj("mytree");
zTree.checkNode(children[i],checked,checked);
if(children[i].isParent){
zTree.expandNode(children[i], true, true, false);
}
onExpand(event, treeId, children[i]);
}
}
};
// 加载错误提示
function zTreeOnAsyncError(event, treeId, treeNode, XMLHttpRequest, textStatus, errorThrown) {
alert("加载错误:" + XMLHttpRequest);
};
// 过滤函数
function filter(treeId, parentNode, childNodes) {
if (!childNodes)
return null;
for ( var i = 0, l = childNodes.length; i < l; i++) {
childNodes[i].name = childNodes[i].name.replace(/\.n/g, '.');
}
return childNodes;
}
// 渲染
$(document).ready(function() {
var str = <%=jsonString%>;
var show = "<input type='text' style='width: 100px;display:none;' name='code' value='"+str.code+"'/>";
show += "<input type='text' style='width: 100px;display:none;' name='name' value='"+str.name+"'/>";
$("#condition").html(show);
$.fn.zTree.init($("#mytree"), setting);
resetDialogHeight();
});
//弹出窗口高度调整自适应
function resetDialogHeight(){
var height = document.body.scrollHeight;
var heightTop = document.body.scrollTop;
if ( window.XMLHttpRequest ) {
window.dialogHeight = (height+heightTop+295) + "px";
} else {
window.dialogHeight=(height+heightTop+55) + "px";//IE6不能自动调整高度,要加45
}
}