j2ee 简单网站搭建:(十)jquery ztree 插件使用入门

为什么80%的码农都做不了架构师?>>>   hot3.png

《j2ee 简单网站搭建:(一) windows 操作系统下使用 eclipse 建立 maven web 项目》
《j2ee 简单网站搭建:(二)添加和配置 spring + spring-mvc 的 mvc 开发环境》
《j2ee 简单网站搭建:(三)在搭建好的 spring maven web 项目中加入 mybatis 访问数据库》
《j2ee 简单网站搭建:(四)将 freemaker 模板引擎作为 spring-mvc 展现层》
《j2ee 简单网站搭建:(五)使用 jcaptcha 生成验证码图片》
《j2ee 简单网站搭建:(六)使用 hibernate validation 实现 domain 层实体类验证》
《j2ee 简单网站搭建:(七)使用 shiro 结合 jcaptcha 实现用户验证登录》
《j2ee 简单网站搭建:(八)使用 jquery-validate 实现页面验证入门》
《j2ee 简单网站搭建:(九)jquery datatables + jquery ui dialog 插件使用入门》
《j2ee 简单网站搭建:(十)jquery ztree 插件使用入门》
《j2ee 简单网站搭建:(十一)ckeditor 控件使用入门》

ztree 版本 v3.5.28

一 从官方网站下载 ztree 的 css 和 js 文件,引入项目的 web 目录中
网站地址 http://www.treejs.cn/v3/main.php#_zTreeInfo

二 在 html 页面 <head> 标签中加入 css 文件

<!-- zTree CSS -->
<link rel="stylesheet" href="你的文件路径/metroStyle.css" type="text/css">

三 在 html 页面 <body> 标签内添加绑定 ztree 插件的 ul 标签,本例中 ul 标签的 id 设置为 categorytree

<ul id="categorytree" class="ztree" style="width: 100%"></ul>

四 在 html 页面 </body> 标签内添加绑定 ztree 插件 js 文件以及 javascript 代码

<script type="text/javascript" src="你的文件路径/jquery.ztree.core.min.js"></script>
<script type="text/javascript" src="你的文件路径/jquery.ztree.excheck.js"></script>
<script type="text/javascript" src=你的文件路径/jquery.ztree.exedit.js"></script><!-- Page-Level Demo Scripts - Tables - Use for reference -->
<script>var zTree = $.fn.zTree.getZTreeObj("categorytree"); // 获得树对象// zTree 的参数配置,深入使用请参考 API 文档(setting 配置详解)var setting = {view : {selectedMulti: false, // 取消多选addHoverDom: addHoverDom, // 鼠标选中后显示增、改按钮removeHoverDom: removeHoverDom // 鼠标移除后显示增、改按钮},data :{ // 设置节点的属性值以及从服务端传送过来的数据向节点绑定的参数值simpleData : {enable : true,idKey : 'id', // 绑定服务端传过来的 id 参数pIdKey : 'pid', // 绑定服务端传过来的 pid 参数rootPid : 0, // 根节点的父节点 id 值status : 'status' // 绑定服务端传过来的 status 参数}},edit : { // 对节点编辑时进行的设置enable : true, // 允许编辑showRemoveBtn : false, // 是否显示 删除节点 按钮showRenameBtn : true, // 是否显示 修改节点内容 按钮renameTitle : "修改", // 如果显示 修改节点内容 按钮后,按钮上的文字显示啥editNameSelectAll : true, // 编辑节点名称的时候是否对名称文字全选// drag : { // 是否允许节点拖拽放置、复制、移动//     autoExpandTrigger : false,//     isCopy : false,//     isMove : false// }},callback: { // 设置所有的回调函数onRename: onRename, // 修改时调用onDrop: onDrop // 拖拽}};// zTree 的数据属性,深入使用请参考 API 文档(zTreeNode 节点数据详解)$(document).ready(function() {var zNodes;$.ajax({ // 需要调用同步方法,因此不能使用post方法,此处加载整棵树type:"POST",async:false,url:"get_category_tree", // 服务端获得数据的方法dataType : "json",data:null,success:function(result){ // 调用成功对节点进行设置if (result != null && result.status == true)zNodes = result.data;}});zTree = $.fn.zTree.init($("#categorytree"), setting, zNodes); // 初始化树对象});function addHoverDom(treeId, treeNode) { // 在鼠标移动到节点上方时显示对节点的操作按钮并对按钮绑定处理方法var sObj = $("#" + treeNode.tId + "_span"); // 获得鼠标所在的节点对象if (treeNode.editNameFlag || $("#addBtn_"+treeNode.tId).length>0 || $("#startBtn_"+treeNode.tId).length>0) return; // 如果鼠标所在的节点正在编辑或者添加按钮已存在则以下不执行var addStr = "<span class='button add' id='addBtn_" + treeNode.tId+ "' title='添加' onfocus='this.blur();'></span>"; // 动态生成新增按钮var startStr = "<span class='button start' id='startBtn_" + treeNode.tId+ "' title='启用' onfocus='this.blur();'></span>"; // 动态生成启用按钮var stopStr = "<span class='button stop' id='stopBtn_" + treeNode.tId+ "' title='停用' onfocus='this.blur();'></span>"; // 动态生成停用按钮var statusStr = "<span id='statusSpan_" + treeNode.tId + "' title='状态'>[" + (treeNode.status ? "启用" : "停用") + "]</span>"; // 动态生成停用按钮sObj.after(stopStr).after(startStr).after(addStr).after(statusStr); // 在鼠标所在节点后显示添加按钮、启动按钮和其它操作按钮// - - - 新增按钮及处理方法 - - - //var addBtn = $("#addBtn_"+treeNode.tId); // 获得添加按钮对象并绑定点击事件if (addBtn) addBtn.bind("click", function(){ // 添加按钮点击后的操作var newNodeName = Math.round(Math.random()* 99999999).toString(); // 新增的节点名称$.ajax({ // 需要调用同步方法,因此不能使用post方法,这里需要添加节点type : "POST",async : false,url : "add_tree_node",dataType : "json",data : {name: newNodeName, parentId: treeNode.id, parentName: treeNode.name},success:function(result){if (result != null && result.status == true) {$('#div_alert').text("节点添加成功!").prop('class', 'alert alert-success'); // 设置提示信息并改变提示框样式为成功// 返回值为数据库中的自增IDzTree.addNodes(treeNode, {id: result.data, pId: treeNode.id, name: newNodeName, status: 1}); // 在ztree中添加节点,因为在设置中将treeNode 的name设置为nameWithStatus,因此这里要传这个名称}else $('#div_alert').text("节点添加失败!").prop('class', 'alert alert-warning'); // 设置提示信息并改变提示框样式为警告}});return false;});function removeHoverDom(treeId, treeNode) { // 鼠标移除后清除临时生成的对象$("#addBtn_"+treeNode.tId).unbind().remove(); // 鼠标移动后删除添加按钮所有内容$("#startBtn_"+treeNode.tId).unbind().remove(); // 鼠标移动后删除启用按钮所有内容$("#stopBtn_"+treeNode.tId).unbind().remove(); // 鼠标移动后删除停用按钮所有内容$("#statusSpan_"+treeNode.tId).unbind().remove(); // 鼠标移动后删除状态框内容}function onRename(e, treeId, treeNode, isCancel) { // 修改名称var parentNode = treeNode.getParentNode();$.ajax({ // 需要调用同步方法,因此不能使用post方法,这里需要添加节点type : "POST",async : false,url : "modify",dataType : "json",data : {id: treeNode.id, name: treeNode.name, parentId: (parentNode != null ? parentNode.id : 0), parentName: (parentNode != null ? parentNode.name : "[- 无 -]")},success:function(result){if (result != null && result.status == true) {$('#div_alert').text("修改成功!").prop('class', 'alert alert-success'); // 设置提示信息并改变提示框样式为成功isCancel = false;}else {  // 设置提示信息并改变提示框样式为警告$('#div_alert').text("修改失败!").prop('class', 'alert alert-warning');isCancel = true;}}});return isCancel;}function onDrop(event, treeId, treeNodes, targetNode, moveType) { // 调整树形节点的位置$.ajax({ // 需要调用同步方法,因此不能使用post方法,这里需要添加节点type : "POST",async : false,url : "modify",dataType : "json",data : {id: treeNodes[0].id, name: treeNodes[0].name, parentId: (targetNode != null ? targetNode.id : 0), parentName: (targetNode != null ? targetNode.name : "[- 无 -]")},success:function(result){if (result != null && result.status == true) {$('#div_alert').text("位置调整修改成功!").prop('class', 'alert alert-success'); // 设置提示信息并改变提示框样式为成}else {  // 设置提示信息并改变提示框样式为警告$('#div_alert').text("位置调整修改失败!").prop('class', 'alert alert-warning');}}});};
</script>

 

转载于:https://my.oschina.net/ioooi/blog/1525745

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/257619.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实习报告

实习时间&#xff1a;2016/2/18-2016/2/24 实习地点&#xff1a;陕西省米脂县公安局网络警察大队     实习报告&#xff1a; 如今的社会&#xff0c;网络高度发展&#xff0c;一些人随着时代的潮流利用网络发家致富&#xff0c;而有些人利用网络监管的一些漏洞&#xff0c;…

Android成长日记-使用GridView显示多行数据

本节将实现以下效果 Ps&#xff1a;看起来很不错的样子吧&#xff0c;而且很像九宫格/se ----------------------------------------------------------------------- 下面进入正题[s1] &#xff1a; Step 1&#xff1a;新建Layout&#xff0c;里面创建GridView <GridView a…

夺命雷公狗---微信开发39----微信语言识别接口1

语音识别接口的基本介绍 注意&#xff1a; 由于客户端缓存&#xff0c;开发者开启或者关闭语音识别功能&#xff0c;对新关注者立即生效&#xff0c;对已关注用户需要24小时生效&#xff0c;开发者可以从新关注帐号进行测试。 我们可以在测试号下方的体验接口权限表里面找到“接…

java applet 文本框_Java Applet 文本框 TextField 小例 | 学步园

一个Java Applet程序中必须有一个类是Applet类的子类&#xff0c;成为该子类是Java Applet的主类&#xff0c; 并且必须是public class。 Applet类是包java.applet中的一个类&#xff0c; 同时它还是包java.awt中Container(容器)类的子类。因此Java Applet的主类的实例是一个容…

博客园客户端(睡睡版iphone)源码

1.关于 https://itunes.apple.com/us/app/shui-shui-bo-ke-yuan/id512394144?ls1&mt8 项目目前为V3.0版&#xff0c;也是我开发的最新版&#xff0c;目前已无法在appstore下载&#xff0c;项目介绍&#xff1a;http://www.cnblogs.com/bandy/p/3509482.html 2.现状 目前本…

3.过滤数据 ---SQL

一、使用WHERE子句 SELECT prod_name, prod_price FROM Products WHERE prod_price 3.49; 输出▼ prod_name prod_price ------------------- ---------- Fish bean bag toy 3.49 Bird bean bag toy 3.49 Rabbit bean bag toy 3.49 分析▼ 这条语句从products表中检索两个列&a…

IOS-C语言第8天,Struct (结构体)

转载于:https://www.cnblogs.com/xiangrongsu/p/4309160.html

java concurrent 锁_java并发机制锁的类型和实现

synchronized 和 volatile&#xff0c;是最基础的两个锁&#xff01;volatile是轻量级锁&#xff0c;它在多核处理器开发中保证了共享变量的可见性。即当一个线程修改一个共享变量时&#xff0c;其他线程能够读到这个修改的值。它比syncronized使用和成本更低。要说volatile的实…

【起航计划 011】2015 起航计划 Android APIDemo的魔鬼步伐 10 App-Activity-Reorder Activities 后退栈 Intent FLAG...

Reorder Activities 示例有四个相关的Activitives: ReorderOnLaunch, ReorderTwo,ReorderThree, ReorderFour。其中ReorderOnLaunch为主Activity&#xff0c;ReorderOnLaunch启动ReorderTwo &#xff0c;ReorderTwo启动 ReorderThree&#xff0c;ReorderThree启动 ReorderFour。…

spartan6不能直接把时钟连到IO上

1、问题的提出&#xff1a;spartan6中不允许时钟信号直接连到IO口上面&#xff1f; 2、解决办法&#xff1a;ODDR2的使用 ODDR2Primitive: Double Data Rate Output D Flip-Flop with Optional Data Alignment, Clock Enable and Programmable Synchronous or Asynchronous Set…

Html5 Canvas斗地主游戏

过完年来公司&#xff0c;没什么事&#xff0c;主管说研究下html5 游戏&#xff0c;然后主管就给了一个斗地主的demo&#xff0c;随后我就开始看代码&#xff0c; 现在我看了html5以及canvas相关知识和斗地主的demo后&#xff0c;自己用demo上的素材试着写了个斗地主&#xff0…

mysql的查询、子查询及连接查询

一、mysql查询的五种子句 where子句&#xff08;条件查询&#xff09;&#xff1a;按照“条件表达式”指定的条件进行查询。 group by子句&#xff08;分组&#xff09;&#xff1a;按照“属性名”指定的字段进行分组。group by子句通常和count()、sum()等聚合函数一起使用。 h…

WebLogic11g-常用运维操作

转自&#xff1a;https://dead-knight.iteye.com/blog/1940399 希望这篇能把weblogic运维时经常遇到的问题、常用的配置汇总到一起。 1、配置jvm参数&#xff1a; 一般在domain启动过程中会看到以下启动的日志信息&#xff0c;如下图所示&#xff1a; 图中红色方框部分为启动we…

当安全遇到大数据 “永恒之蓝”也将无所遁形!

文章讲的是当安全遇到大数据 “永恒之蓝”也将无所遁形&#xff01;5月12日&#xff0c;席卷全球的勒索病毒“永恒之蓝”让全世界都为之震动&#xff0c;这是迄今为止全球最大规模的勒索病毒网络攻击&#xff0c;100多个国家受到病毒感染&#xff0c;国内中石油、公安内网、高校…

[ES] 安装

1.ElasticSearch安装的准备工作 Linux&#xff1a;CentOS6.4 Elasticsearc:elasticsearch-2.2.0 JDK:jdk-7u79-linux-x64 IK:1.8.0 MAVEN:apache-maven-3.3.3-bin 2.配置网络静态文件 虚拟机设置桥接模式 配置&#xff1a;vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVIC…

基于Eclipse搭建STM32开源开发环境

最近项目不忙&#xff0c;想着没事看看简单的嵌入式&#xff0c;弄弄物联网什么的。于是就从廉价的STM32开刀了。因为一直是做PC软件开发的&#xff0c;那VS的智能感知那叫一个爽啊&#xff0c;相比之下&#xff0c;觉得这个Keil简直就像文本编辑器一样low。于是想换一个开发环…

数据中心不再有空调、风扇等冷却装置会怎样?

数据中心的变革有望依赖移动设备实现&#xff0c;手机里轻便设备或将成为下一代数据中心的基础设施&#xff0c;服务Google和Facebook等大型的应用程序服务企业。同时&#xff0c;这种商业模式也会构建新一代企业的发展形态&#xff0c;为初创企业带来前所未有的机遇。 CSDN大数…

.NET 数据库缓存依赖策略实现

处理大型门户网站 一般都需要 使用缓存技术这个web加速器在 PHP 和 java 一般 使用的是 基于squid 来做. 当然在 windows .NET 平台也是可以的 squid有 windows版本.这个以后再去研究,现在 就介绍一下 .NET 自带的 缓存策略.Microsoft的petshop就用到了它;  一、基于数据库触…

设计模式之PHP项目应用——单例模式设计Memcache和Redis操作类

1 单例模式简单介绍 单例模式是一种经常使用的软件设计模式。在它的核心结构中仅仅包括一个被称为单例类的特殊类。通过单例模式能够保证系统中一个类仅仅有一个实例并且该实例易于外界訪问。从而方便对实例个数的控制并节约系统资源。假设希望在系统中某个类的对象仅仅能存…

【转】康拓展开

———本文转自&#xff1a;http://www.cnblogs.com/1-2-3/archive/2011/04/25/generate-permutation-part2.html 1、康托展开  康托展开的公式是 Xan*(n-1)!an-1*(n-2)!...ai*(i-1)!...a2*1!a1*0! 其中&#xff0c;ai为当前未出现的元素中是排在第几个&#xff08;从0开始&a…