jstree的简单实例_javascript技巧

最近使用到了jstree,感觉是一款灵活的、可多项定制的tree插件;

我这边使用过程记录下;

参考的jstree api网站,以及demo介绍:

https://www.jstree.com/api/
jstree api github:
https://github.com/vakata/jstree

使用中的例子介绍:

html代码:

<!-- 搜索框 -->
 <div class="search_input">
 <input type="text" id="search_ay" />
 <img src="/sfytj/dist/images/icon/ss_search.png" />
 </div>
<!-- 案由列表 -->
<div class="reason_list">
 <div id="treeview1" class="treeview">
 </div>
 </div> 

 js代码:

1)生成jstree:

$("#treeview1").jstree({
  'core' : {
  "multiple" : false,
  'data' : ay_mssys,
  'dblclick_toggle': false  //禁用tree的双击展开
  },
  "plugins" : ["search"]
});
var ay_mssys =
 [
 {
  "id": "1",
  "text": "民事案由(2008版)",
  "state": {
   "opened": true,  //展示第一个层级下面的node
   "disabled": true  //该根节点不可点击
   },
  "children":
   [
    {
    "id": "2",
    "text": "人格权纠纷",
    "children":
     [
      {
      "id": "3",
      "text": "人格权纠纷",
      "children": [
       {
       "id": "4",
       "text": "生命权、健康权、身体权纠纷",
       "children":
         [
         {
          "id": "5",
          "text": "道路交通事故人身损害赔偿纠纷"
          }
         ]
       }
       ]
      }
     ]
    }
   ]
  }
 ] 

//core:整个jstree显示的核心,里面包括多种项配置:
//data: 这里是使用json格式的数据;还可以使用html或者ajax请求等
//plugins: 这个jstree引用了哪些插件
//multiple : false 不可多选 

2)点击jstree的每个子项,获取该节点的text、id等信息:

//tree change时事件
$('#treeview1').on("changed.jstree", function (e, data) {
 console.log("The selected nodes are:");
 console.log(data.node.id);  //选择的node id
 console.log(data.node.text);  //选择的node text
 form_data.ay = data.node.text;
 form_data.ay_id = data.node.id;
});
//changed.jstree,jstree改变时发生的事件,类似的还有select_node.jstree等,api中有。 

3)点击jstree子项,控制该节点展开、收缩等:

//jstree单击事件
$("#treeview1").bind("select_node.jstree", function (e, data) {
 if(data.node.id !=1 ){    //排除第一个节点(2011民事案由)
 data.instance.toggle_node(data.node); //单击展开下面的节点
 }
}); 

4)使用插件search搜索(jstree自带的插件):

//输入框输入定时自动搜索
var to = false;
$('#search_ay').keyup(function () {
 if(to) {
 clearTimeout(to);
 } 

 to = setTimeout(function () {
 $('#treeview1').jstree(true).search($('#search_ay').val()); 

 }, 250);
}); 

以上就是本文的全部内容,希望对大家有所帮助,同时也希望多多支持!

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索jstree
jstree例子
javascript简单实例、jstree 实例、jstree 异步加载实例、jquery jstree 实例、jstree 动态加载实例,以便于您获取更多的相关知识。

时间: 2024-11-08 19:03:49

jstree的简单实例_javascript技巧的相关文章

javascript加减乘除的简单实例_javascript技巧

javascript加减乘除的简单实例 <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> </head> <script language="javascript" type="text/javascript"> //除法函数 function accD

easyui tree带checkbox实现单选的简单实例_javascript技巧

实例如下: <ul id="regionTree"></ul> $('#regionTree').tree({ cascadeCheck: false, //onlyLeafCheck: true, checkbox: true, data: [{ "id": 1, "text": "My Documents", "children": [{ "id": 11,

js验证真实姓名与身份证号,手机号的简单实例_javascript技巧

最近的项目中用的需要调用实名认证的接口,实名认证接口价格相比短信而言高了不是几分钱,所以说调用实名认证的条件就要严格把关,因此用到js验证真实姓名与js验证身份证号. 进入正题 1.js验证真实姓名 js验证真实姓名,是用的unicode字符的来进行匹配,而中国人的姓名长度一般都是2-4,所以重复匹配{2,4}次 var regName =/^[\u4e00-\u9fa5]{2,4}$/; if(!regName.test(name)){ alert('真实姓名填写有误'); return fa

15位和18位身份证JS校验的简单实例_javascript技巧

一.身份证号码的结构和表示形式 1.号码的结构 根据[中华人民共和国国家标准GB11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码. 2.地址码 表示编码对象常住户口所在县(市.旗.区)的行政区划代码,按GB/T2260的规定执行. 3.出生日期码 表示编码对象出生的年.月.日,按GB/T7408的规定执行,年.月.日代码之间不用分隔符. 4.顺序

IE下JS保存图片的简单实例_javascript技巧

IE下JS保存图片的简单实例 function ieSave() { var img = document.images[0]; var oPop = window.open(img.src, "", "width=0,height=0,top=5000,left=5000"); for (; oPop.document.readyState != "complete";) { if (oPop.document.readyState == &q

js实现楼层效果的简单实例_javascript技巧

今天自己写个楼层效果,有一点烦躁,小地方犯错误.各位大神来修改不足啊!!! <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>楼层切换</title> <style> *{padding: 0;margin: 0;} li{list-style: none;} .main img{width:

JS判断日期格式是否合法的简单实例_javascript技巧

类似于PHP中的Checkdate. //函数名:CheckDateTime //功能介绍:检查是否为日期时间 function CheckDateTime(str){ var reg = /^(\d+)-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; var r = str.match(reg); if(r==null)return false; r[2]=r[2]-1; var d= new Date(r[1], r[2],r[3],

js 弹出对话框(遮罩)透明,可拖动的简单实例_javascript技巧

js 弹出对话框(遮罩)透明,可拖动的简单实例 <html> <head> <script> function sAlert(txt) { //var eSrc=(document.all)?window.event.srcElement:arguments[1]; var shield = document.createElement("DIV"); shield.id = "shield"; shield.style.posi

js 判断一组日期是否是连续的简单实例_javascript技巧

这是群里一朋友问的问题,当时我说判断下 day 是否相邻即可,后来细想,发现完全不对. 问题需求 给定5个相同格式的日期,怎么判断是否是连续5天呢? 我当时第一反应 getDay() 后排序,然后前后对比即可.. 但是细想,完全不对,比如本周一下周二,这样也会误判. 而且不仅仅这样的问题,还要跨月,跨年,闰月等问题. 然后就有了下面的代码. 让时间戳抹平一切吧 为了不纠结这些问题,我想到了时间戳,这货就可以完全忽略上述问题了,只要处理时间戳,最后比较即可. 然后我给了如下代码: let days