Easyui和zTree两种方式分别实现树形下拉框
最近工作中需要用到树形下拉框,因为项目中树形结构使用的是zTree,然后就百度,结果出来效果不好看,后来就试着用了easyui的comboTree,虽然比较好看,但是跟整体的bootstrap风格有点儿不搭。现在贴出来两种方式及效果,以后备用。
方式一,使用zTree
前端代码:
js代码:
/* *点击事件下拉树的设置 */ varactionTypeSetting={ view:{ dblClickExpand:true, showIcon:false, fontCss:{"font-weight":"400","font-size":"20px"} }, data:{ key:{ name:"text", children:"children" }, simpleData:{ enable:true } }, callback:{ onClick:actionTypeOnClick } }; /* *点击事件下拉树的点击事件 */ functionactionTypeOnClick(e,treeId,treeNode){ $("#actionTypeId").val(treeNode.id); $("#selectActionType").val(treeNode.text); } /* *初始化点击事件类型 * */ functioninitActionType(){ $.ajax({ async:false, cache:false, type:'POST', dataType:"json", url:localStorage.getItem("adminPath")+'/touch/typeTable/getActionList?businessTypeId=2', error:function(){//请求失败处理函数 alert('请求失败'); }, success:function(data){//请求成功后处理函数 $.fn.zTree.init($("#actionTypeTree"),actionTypeSetting,data); } }); } /* *展示点击事件SelectTree */ functionshowActionTypeTree(){ $.ajax({ url:localStorage.getItem("adminPath")+'/touch/typeTable/getActionList?businessTypeId=2', type:'POST', dataType:"json", async:false, success:function(data){ $.fn.zTree.init($("#actionTypeTree"),actionTypeSetting,data); vardeptObj=$("#selectActionType"); vardeptOffset=$("#selectActionType").offset(); $("#actionTreeContent").css({ left:deptOffset.left-26+"px", top:deptOffset.top+"px" }).slideDown("fast"); $('#actionTypeTree').css({width:deptObj.outerWidth()+"px"}); varzTree=$.fn.zTree.getZTreeObj("actionTypeTree"); varnode=zTree.getNodeByParam("id",$('#actionTypeId').val(),null); zTree.selectNode(node); $("body").bind("mousedown",onBodyDownByActionType); } }); } /* *Body鼠标按下事件回调函数 */ functiononBodyDownByActionType(event){ if(event.target.id.indexOf('switch')==-1){ hideActionTypeMenu(); } } /* *隐藏点击事件Tree */ functionhideActionTypeMenu(){ $("#actionTreeContent").fadeOut("fast"); $("body").unbind("mousedown",onBodyDownByActionType); }
方式二:使用easyui
前端代码: