input输入框下拉显示tree树

这次做项目还用到了另一个tree树的插件,就是input输入框下拉tree树

我这只是简单的下拉显示tree树,没有tree树的添加、编辑、删除、移动等操作

先看图片

zTree官方API文档

http://www.treejs.cn/v3/api.php

上代码

  1. 引入的js

     <script src="js/jquery-1.4.4.min.js" type="text/javascript"></script>
     <link href="css/zTreeStyle/zTreeStyle.css" rel="stylesheet" type="text/css" />
     <script src="js/jquery.ztree.core-3.5.min.js" type="text/javascript"></script>
     <script src="js/jquery.ztree.excheck-3.5.min.js" type="text/javascript"></script>

    js文件包括源码上传至百度云:https://pan.baidu.com/s/1iOtplePD1gwYBme8y4BD4w

  2. 代码

     <html xmlns="http://www.w3.org/1999/xhtml" >
     <head runat="server">
         <meta charset="UTF-8"> <!-- for HTML5 -->
    
         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
         <script src="js/jquery-1.4.4.min.js" type="text/javascript"></script>
         <link href="css/zTreeStyle/zTreeStyle.css" rel="stylesheet" type="text/css" />
         <script src="js/jquery.ztree.core-3.5.min.js" type="text/javascript"></script>
         <script src="js/jquery.ztree.excheck-3.5.min.js" type="text/javascript"></script>
    
     <script type="text/javascript">
    
         var setting = {
             view: {
                 showIcon: false//设置 zTree 是否显示节点的图标。默认值:true
                 showLine: false//设置 zTree 是否显示节点之间的连线。默认值:true
             },
             data: {
                 simpleData: {
                     enable: true//确定 zTree 初始化时的节点数据、异步加载时的节点数据、或 addNodes 方法中输入的 newNodes 数据是否采用简单数据模式 (Array)
                     不需要用户再把数据库中取出的 List 强行转换为复杂的 JSON 嵌套格式
                     默认值:false
                     ztree有两种数据格式1、标准数据格式 2、简单数据格式(我们常用的json数据格式,也就是我下面的数据格式)
                     idKey: "id",//你后台返回的json的id字段(节点数据中保存唯一标识的属性名称。[setting.data.simpleData.enable = true 时生效])
                     pIdKey: "pId",//你后台返回的json的父级id字段(节点数据中保存其父节点唯一标识的属性名称。[setting.data.simpleData.enable = true 时生效])
                     rootPId: 0(用于修正根节点父节点数据,即 pIdKey 指定的属性值。[setting.data.simpleData.enable = true 时生效])
                 }
             },
             callback: {
                 onClick: onClick//用于捕获节点被点击的事件回调函数
                 //如果设置了 setting.callback.beforeClick 方法,且返回 false,将无法触发 onClick 事件回调函数。
             }
         };
    
         var filename;
         var parentids;
         var parentId;
    
         function onClick(e, treeId, treeNode) {
             $(‘#txtTreeSelect‘).val(treeNode.name);
              alert(treeNode.tId + ", " + treeNode.name);//每次点击节点后, 弹出该节点的 Id、name 的信息
              filename = getFilePath(treeNode);//获取所有父节点的名字
              parentids = getFileId(treeNode);//获取所有父节点的id
              parentId = treeNode.id;//获取点击节点的id
         }
         //获取所有父节点名字
         function getFilePath(treeObj){
             if(treeObj==null)return "";
             var filename = treeObj.name;
             var pNode = treeObj.getParentNode();
             if(pNode!=null){
                 filename = getFilePath(pNode) +">"+ filename;
             }
             return filename;
         }
         //获取所有父节点id
         function getFileId(treeObj){
             if(treeObj==null)return "";
             var id = treeObj.id;
             var pNode = treeObj.getParentNode();
             if(pNode!=null){
                 id = getFileId(pNode) +">"+ id;
             }
             return id;
         }
    
         function showMenu() {//输入框的点击事件
             var cityObj = $(‘#txtTreeSelect‘);
             var cityOffset = cityObj.offset();
             $("#menuContent").css({ left: cityOffset.left + "px", top: cityOffset.top + cityObj.outerHeight() + "px" }).slideDown("fast");
             $("body").bind("mousedown", onBodyDown);
         }
    
         function hideMenu() {//初始化隐藏下拉树
             $("#menuContent").fadeOut("fast");
             $("body").unbind("mousedown", onBodyDown);
         }
         function onBodyDown(event) {//树的主体
             if (!(event.target.id == "menuBtn" || event.target.id == "menuContent" || $(event.target).parents("#menuContent").length > 0)) {
                 hideMenu();
             }
         }
    
         $(document).ready(function () {//一进页面就会加载的方法
             var zNodes =[//自定义json
                 { id:1, pId:0, name:"父节点1 - 展开", open:true,url:"jyy"},
                 { id:11, pId:1, name:"父节点11 - 折叠"},
                 { id:111, pId:11, name:"叶子节点111"},
                 { id:112, pId:11, name:"叶子节点112"},
                 { id:113, pId:11, name:"叶子节点113"},
                 { id:114, pId:11, name:"叶子节点114"},
                 { id:12, pId:1, name:"父节点12 - 折叠"},
                 { id:121, pId:12, name:"叶子节点121"},
                 { id:122, pId:12, name:"叶子节点122"},
                 { id:123, pId:12, name:"叶子节点123"},
                 { id:124, pId:12, name:"叶子节点124"},
                 { id:13, pId:1, name:"父节点13 - 没有子节点", isParent:true},
                 { id:2, pId:0, name:"父节点2 - 折叠"},
                 { id:21, pId:2, name:"父节点21 - 展开", open:true},
                 { id:211, pId:21, name:"叶子节点211"},
                 { id:212, pId:21, name:"叶子节点212"},
                 { id:213, pId:21, name:"叶子节点213"},
                 { id:214, pId:21, name:"叶子节点214"},
                 { id:22, pId:2, name:"父节点22 - 折叠"},
                 { id:221, pId:22, name:"叶子节点221"},
                 { id:222, pId:22, name:"叶子节点222"},
                 { id:223, pId:22, name:"叶子节点223"},
                 { id:224, pId:22, name:"叶子节点224"},
                 { id:23, pId:2, name:"父节点23 - 折叠"},
                 { id:231, pId:23, name:"叶子节点231"},
                 { id:232, pId:23, name:"叶子节点232"},
                 { id:233, pId:23, name:"叶子节点233"},
                 { id:234, pId:23, name:"叶子节点234"},
                 { id:3, pId:0, name:"父节点3 - 没有子节点", isParent:true}
                 ];
    
             $.fn.zTree.init($("#treeDemo"), setting, zNodes);   //zTree的初始化方法
         });
    
     </script>
         <title></title>
     </head>
     <body>
         <form id="form1" runat="server">
         <div>
             <input id="txtTreeSelect" type="text" onclick="showMenu(); return false;"/>//输入框
         </div>
         <div id="menuContent" class="menuContent" style="display: none; position: absolute;">
             <ul id="treeDemo" class="ztree" style="margin-top: 0; width: 120px; height:80px;">
             </ul>
         </div>//tree树的div块
         </form>
     </body>
     </html>

原文地址:https://www.cnblogs.com/lvgeaibingyue/p/10167674.html

时间: 2024-08-04 17:23:59

input输入框下拉显示tree树的相关文章

基于jQuery的input输入框下拉提示层(自动邮箱后缀名)

基于jQuery的input输入框下拉提示层,方便用户输入邮箱时的提示信息,需要的朋友可以参考下 效果图 // JavaScript Document (function($){ $.fn.extend({ "changeTips":function(value){ value = $.extend({ divTip:"" },value) var $this = $(this); var indexLi = 0; //点击document隐藏下拉层 $(docum

java简单的实现搜索框的下拉显示相关搜索功能

最近做了一个简单的搜索框下面下拉显示相关搜索的功能,有点模仿百度的下拉展示相关搜索 先上个展示图 : 点击进入演示地址,大家可以输入长点的搜索,点击搜索,再输入之前搜索词的前面部分,看是否能展示出来 搜索框相关搜索的展示很简单,就是根据你的搜索词,去数据库中匹配,是否有类似的搜索词存在,按照搜索词被搜索的次数进行排序显示出来 我设计的是每次搜索一个词,提交之后都会去数据库进行查询,看是否存在这个搜索词的搜索,若存在,则对数据库中的这个搜索词对象进行次数加1,不存在,则创建这个新搜索词对象,保存在

DataGridView单元格内容自动匹配下拉显示

页面显示数据使用的控件是ComponentFactory.Krypton.Toolkit中的KryptonDataGridView控件.在指定“商品”单元格中需要根据用户输入内容自动匹配数据库中商品信息,并且单元格处于编辑模式时显示一个查询图标的按钮,点击该按钮也将显示数据库中所有商品信息. KryptonDataGridView显示控件此处命名为kDGVIndentDetail; 用于下拉显示匹配内容的DataGridView命名为dgv; 1.建立一个DataGridView类型的页面变量用

UIScrollView UITableView 上拉隐藏导航栏和tabbar 下拉显示导航栏和tabbar

//UIScrollView  UITableView 上拉隐藏导航栏和tabbar 下拉显示导航栏和tabbar-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{ CGPoint translation = [scrollView.panGestureRecognizer translationInView:scrollView.superview];    if

Bootstrap 表单控件一(单行输入框input,下拉选择框select ,文本域textarea)

单行输入框,常见的文本输入框,也就是input的type属性值为text.在Bootstrap中使用input时也必须添加type类型,如果没有指定type类型,将无法得到正确的样式,因为Bootstrap框架都是通过input[type=“?”](其中?号代表type类型,比如说text类型,对应的是input[type=“text”])的形式来定义样式的. 为了让控件在各种表单风格中样式不出错,需要添加类名“form-control”,如: <form role="form"

C# ComboBox 下拉显示层次(树)

数据库中很多时候用到树形结构,在界面上显示时如果是下拉框一次性显示时需要树结构来体现,看个效果图先: 主要是用算法补空格,补符号,源码如下: using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form

js禁止微信浏览器下拉显示黑底查看网址,不影响内部Scroll

开发项目跑在微信浏览器经常会遇到一个问题,微信浏览器下拉的时候会出现自带的黑色底色(显示网址)如下图: 网上好多js禁止操作的做法禁止了内部Scroll,导致页面不能滚动,上拉加载失效,例如这种做法: $('body').on('touchmove', function (event) {event.preventDefault();}); or document.addEventListener('touchmove', function(e){e.preventDefault()}, fal

JQuery 简单的文字超出部分隐藏下拉显示

HTML代码: <body> <div class="txt_bos"><!--在每一个放置文字的class外面包一个div,以便设置动画样式用,同样用class--> <div class="txt1"><!--为了保证功能的通用性,这里全用class--> 石村,位于苍莽山脉中,四周高峰大壑,茫茫群山巍峨. 清晨,朝霞灿灿,仿若碎金一般洒落,沐浴在人身上暖洋洋. 一群孩子,从四五岁到十几岁不等,能有数十

combobox后台查询,前端下拉显示

/** * 获得数据库数据 * */ @Action(value="sysList_data_list") public void getSysListDataList(){ List<Map<String,String>> list = new ArrayList<Map<String,String>>(); String hql = " from SysList a where 1=1 "; List<Sys