Easyui和zTree两种方式分别实现树形下拉框


Posted in Javascript onAugust 04, 2017

最近工作中需要用到树形下拉框,因为项目中树形结构使用的是zTree,然后就百度,结果出来效果不好看,后来就试着用了easyui的comboTree,虽然比较好看,但是跟整体的bootstrap风格有点儿不搭。现在贴出来两种方式及效果,以后备用。

方式一,使用zTree

前端代码:

<div class="form-group"> 
  <label>点击事件:</label> 
  <input id="selectActionType" class="form-control" onfocus="showActionTypeTree()" onclick="showActionTypeTree()" readonly="readonly" style="border-radius:5px;background-color: white;cursor: default;"/> 
  <input type="hidden" name="actionTypeId" id="actionTypeId"/> 
  <div id="actionTreeContent" class="menuContent" style="border-radius:5px;display: none; z-index:9999;position: absolute; border: 1px #CCC solid; background-color:#f9f9f9;"> 
    <ul id="actionTypeTree" class="ztree" style="margin-top:0;height: 200px;overflow: auto"></ul> 
  </div> 
</div>

js代码:

/* 
   * 点击事件下拉树的设置 
   */ 
  var actionTypeSetting = { 
    view: { 
      dblClickExpand: true, 
      showIcon: false, 
      fontCss : {"font-weight":"400","font-size":"20px"} 
    }, 
    data: { 
      key: { 
        name: "text", 
        children: "children" 
      }, 
      simpleData: { 
        enable: true 
      } 
    }, 
    callback: { 
      onClick: actionTypeOnClick 
    } 
  }; 
  /* 
   * 点击事件下拉树的点击事件 
   */ 
  function actionTypeOnClick(e, treeId, treeNode) { 
    $("#actionTypeId").val(treeNode.id); 
    $("#selectActionType").val(treeNode.text); 
  } 
  /* 
   * 初始化点击事件类型 
   * 
   */ 
  function initActionType() { 
    $.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 
   */ 
  function showActionTypeTree() { 
    $.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); 
        var deptObj = $("#selectActionType"); 
        var deptOffset = $("#selectActionType").offset(); 
        $("#actionTreeContent").css({ 
          left: deptOffset.left - 26 + "px", 
          top: deptOffset.top + "px" 
        }).slideDown("fast"); 
        $('#actionTypeTree').css({width: deptObj.outerWidth() + "px"}); 
        var zTree = $.fn.zTree.getZTreeObj("actionTypeTree"); 
        var node = zTree.getNodeByParam("id", $('#actionTypeId').val(), null); 
        zTree.selectNode(node); 
        $("body").bind("mousedown", onBodyDownByActionType); 
      } 
    }); 
  } 
  /* 
   * Body鼠标按下事件回调函数 
   */ 
  function onBodyDownByActionType(event) { 
    if (event.target.id.indexOf('switch') == -1) { 
      hideActionTypeMenu(); 
    } 
  } 
  /* 
   * 隐藏点击事件Tree 
   */ 
  function hideActionTypeMenu() { 
    $("#actionTreeContent").fadeOut("fast"); 
    $("body").unbind("mousedown", onBodyDownByActionType); 
  }

方式二:使用easyui

前端代码:

<div class="form-group"> 
  <label>点击事件:</label> 
  <input id="actionTypeId2" name="actionTypeId2" class="form-control" /> 
</div>

js代码:

$("#actionTypeId2").combotree({
  url: localStorage.getItem("adminPath") + '/touch/typeTable/getActionList?businessTypeId=2',
  textField:'name',
  onClick: function (node) {
    $("#actionTypeId").val(node.id);
  },
  onSelect: function (node) {
    /**
     * 当选中该节点时展开该节点,同时关闭其他节点
     */
    if (node.state == "closed") {
      $(this).tree('expand', node.target);
    }
    else {
      var isLeaf = $(this).tree('isLeaf', node.target);
      if (!isLeaf) {
        $(this).tree("collapse", node.target);
      }
    }
  }
});

总结

以上所述是小编给大家介绍的Easyui和zTree两种方式分别实现树形下拉框,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
增强用户体验友好性之jquery easyui window 窗口关闭时的提示
Jun 22 Javascript
jQuery 处理页面的事件详解
Jan 20 Javascript
微信jssdk在iframe页面失效问题的解决措施
Mar 03 Javascript
使用jquery如何获取时间
Oct 13 Javascript
js数组操作方法总结(必看篇)
Nov 22 Javascript
Angular2学习教程之TemplateRef和ViewContainerRef详解
May 25 Javascript
Angular2生命周期钩子函数的详细介绍
Jul 10 Javascript
五步轻松实现zTree的使用
Nov 01 Javascript
TypeScript基础入门教程之三重斜线指令详解
Oct 22 Javascript
Angular父子组件通过服务传参的示例方法
Oct 31 Javascript
点击按钮弹出模态框的一系列操作代码实例
Mar 29 Javascript
使用 JavaScript 制作页面效果
Apr 21 Javascript
JS中使用media实现响应式布局
Aug 04 #Javascript
React Native第三方平台分享的实例(Android,IOS双平台)
Aug 04 #Javascript
node中Express 动态设置端口的方法
Aug 04 #Javascript
微信小程序 同步请求授权的详解
Aug 04 #Javascript
微信小程序 转发功能的实现
Aug 04 #Javascript
Vue计算属性的使用
Aug 04 #Javascript
JS+Ajax实现百度智能搜索框
Aug 04 #Javascript
You might like
PHP中的加密功能
2006/10/09 PHP
php+jquery编码方面的一些心得(utf-8 gb2312)
2010/10/12 PHP
php学习之数据类型之间的转换代码
2011/05/29 PHP
PHP命名空间namespace及use的简单用法分析
2018/08/03 PHP
JavaScript CSS修改学习第六章 拖拽
2010/02/19 Javascript
在表单提交前进行验证的几种方式整理
2013/07/31 Javascript
js调用浏览器打印模块实现点击按钮触发自定义函数
2014/03/21 Javascript
jquery和js实现对div的隐藏和显示方法
2014/09/26 Javascript
jQuery插件实现多级联动菜单效果
2015/12/01 Javascript
javaScript事件机制兼容【详细整理】
2016/07/23 Javascript
jQuery Validate插件自定义验证规则的方法
2016/12/27 Javascript
node.js入门学习之url模块
2017/02/25 Javascript
Vue如何引入远程JS文件
2017/04/20 Javascript
浅谈Vue render函数在ElementUi中的应用
2018/09/06 Javascript
Vue实现背景更换颜色操作
2020/07/17 Javascript
vue+echarts实现动态折线图的方法与注意
2020/09/01 Javascript
Vue 组件的挂载与父子组件的传值实例
2020/09/02 Javascript
Django 前后台的数据传递的方法
2017/08/08 Python
python 输出上个月的月末日期实例
2018/04/11 Python
Python django使用多进程连接mysql错误的解决方法
2018/10/08 Python
Python3爬虫爬取英雄联盟高清桌面壁纸功能示例【基于Scrapy框架】
2018/12/05 Python
Python hexstring-list-str之间的转换方法
2019/06/12 Python
python区块及区块链的开发详解
2019/07/03 Python
Win下PyInstaller 安装和使用教程
2019/12/25 Python
HEMA法国:荷兰原创设计
2019/02/21 全球购物
this关键字的含义
2015/04/08 面试题
大学毕业登记表自我鉴定
2013/10/09 职场文书
财务部出纳岗位职责
2013/12/22 职场文书
公务员培训自我鉴定
2014/02/01 职场文书
公司廉洁自律承诺书
2014/03/27 职场文书
本科应届生求职信
2014/08/05 职场文书
证券区域经理岗位职责
2015/04/10 职场文书
违纪开除通知书
2015/04/25 职场文书
挂职锻炼工作总结2015
2015/05/28 职场文书
《索溪峪的野》教学反思
2016/02/19 职场文书
一年之计:2019年下半年的计划
2019/05/07 职场文书