zTree 树插件实现全国五级地区点击后加载的示例

2020-05-24 21:38:04易采站长站整理

</div>
</div>
</div>

效果:

js代码:


$(document).ready(function() {
// zTree 参数配置
var setting = {
view: {
showIcon: false,//是否显示节点的图标
selectedMulti: false //设置是否允许同时选中多个节点。默认值: true。
},
data: {
simpleData: {
enable: true, //是否采用简单数据模式 (Array)。默认值:false
idKey: "path", //节点数据中保存唯一标识的属性名称。
pIdKey: "parentRegion", //节点数据中保存其父节点唯一标识的属性名称。
rootPid: "10000000000000" //用于修正根节点父节点数据,即 pIdKey 指定的属性值。
}
},
callback: {
// 用于捕获节点被点击的事件回调函数
onClick: function(event, treeId, treeNode, clickFlag) {
var treeObj = $.fn.zTree.getZTreeObj(treeId); //根据 treeId 获取 zTree 对象
// 这里判断节点被点击时,如果有已经加载下级节点,则不用请求服务器
if((treeNode.children == null || treeNode.children == "undefined")){
if(!$("#"+treeNode.tId+"_switch").hasClass("center_docu") && !$("#"+treeNode.tId+"_switch").hasClass("bottom_docu")){
// 请求服务器,获得点击地区的下级地区
$.ajax({
type: "get",
async: false,
url: "tRegion/ajaxArea",
data:{
path:treeNode.path
},
dataType:"json",
success: function(data){
if(data != null && data.length != 0){
//添加新节点
var newNodes = treeObj.addNodes(treeNode, data);
$(newNodes).each(function(i,n){
var id = n.tId+"_switch";
if($("#"+id).hasClass("center_docu")){
$("#"+id).removeClass("center_docu");
$("#"+id).addClass("center_close");
}
if($("#"+id).hasClass("bottom_docu")){
$("#"+id).removeClass("bottom_docu");
$("#"+id).addClass("bottom_close");
}
});
}else{
var id = treeNode.tId+"_switch";
if($("#"+id).hasClass("center_close")){
$("#"+id).removeClass("center_close");
$("#"+id).addClass("center_docu");
}
if($("#"+id).hasClass("bottom_close")){
$("#"+id).removeClass("bottom_close");
$("#"+id).addClass("bottom_docu");
}
}
},
error:function(event, XMLHttpRequest, ajaxOptions, thrownError){
result = true;
toastr.error("请求失败!");