javascript入门 之 zTree(十一 托拽事件(一))
- <!DOCTYPE html>
- <HTML>
- <HEAD>
- <TITLE> ZTREE DEMO - drag & drop</TITLE>
- <meta http-equiv="content-type" content="text/html; charset=UTF-8">
- <meta lang="zh">
- <script type="text/javascript" src="../js/jquery-3.3.1.js"></script>
- <link rel="stylesheet" href="../bower_components/ztree/css/zTreeStyle/demo.css" type="text/css">
- <link rel="stylesheet" href="../bower_components/ztree/css/zTreeStyle/zTreeStyle.css" type="text/css">
- <script type="text/javascript" src="../bower_components/ztree/js/jquery-1.4.4.min.js"></script>
- <script type="text/javascript" src="../bower_components/ztree/js/jquery.ztree.core-3.5.js"></script>
- <script type="text/javascript" src="../bower_components/ztree/js/jquery.ztree.excheck-3.5.js"></script>
- <script type="text/javascript" src="../bower_components/ztree/js/jquery.ztree.exedit-3.5.js"></script>
- <SCRIPT type="text/javascript">
- var setting = {
- edit: {
- enable: true,
- showRemoveBtn: true, //设置是否显示删除按钮
- showRenameBtn: true //设置是否显示编辑名称按钮
- },
- data: {
- simpleData: {
- enable: true
- }
- },
- callback: {
- beforeDrag: beforeDrag, //用于捕获节点被拖拽之前的事件回调函数,并且根据返回值确定是否允许开启拖拽操作
- beforeDrop: beforeDrop, //用于捕获节点拖拽操作结束之前的事件回调函数,并且根据返回值确定是否允许此拖拽操作
- onDrag: drag, //侦听beforeDrag回调结果,确定是否允许drag
- drop: drop //侦听beforeDrop回调结果,确定是否允许drop
- }
- };
- var nodes =[
- { id:1, pId:0, name:"1", open:true},
- { id:11, pId:1, name:"1-1"},
- { id:12, pId:1, name:"1-2", open:true},
- { id:121, pId:12, name:"1-2-1"},
- { id:122, pId:12, name:"1-2-2"},
- { id:123, pId:12, name:"1-2-3"},
- { id:13, pId:1, name:"1-3", open:true, drag:false}, //不允许被托拽
- { id:131, pId:13, name:"1-3-1", drag:false}, //不允许被托拽
- { id:132, pId:13, name:"1-3-2", drag:false}, //不允许被托拽
- { id:133, pId:13, name:"1-3-3"},
- { id:2, pId:0, name:"2", open:true},
- { id:21, pId:2, name:"2-1"},
- { id:22, pId:2, name:"2-2", open:true, drop:false}, //不允许托拽到此处
- { id:221, pId:22, name:"2-2-1"},
- { id:222, pId:22, name:"2-2-2"},
- { id:223, pId:22, name:"2-2-3"},
- { id:23, pId:2, name:"2-3"}
- ];
- function beforeDrag(treeId, treeNodes) { //判断被选中的结点是否允许托拽
- for (var i=0,l=treeNodes.length; i<l; i++) {
- if (treeNodes[i].drag === false) {
- alert('被托拽结点不允许操作');
- return false;
- }
- }
- alert('被托拽结点允许操作');
- return true;
- }
- function beforeDrop(treeId, treeNodes, targetNode, moveType) { //判断是否允许被托拽到此地
- alert('托拽事件检测中');
- var state = targetNode ? targetNode.drop !== false : true;
- if (!state){
- alert('托拽目的地结点不允许此操作');
- }else{
- alert('托拽目的地结点允许此操作');
- }
- return state;
- }
- function drag() {
- }
- function drop() {
- }
- function setCheck() {
- var zTree = $.fn.zTree.getZTreeObj("sys"), //将checkbox的值传到zTree树内部
- isCopy = $("#copy").attr("checked"),
- isMove = $("#move").attr("checked"),
- prev = $("#prev").attr("checked"),
- inner = $("#inner").attr("checked"),
- next = $("#next").attr("checked");
- zTree.setting.edit.drag.isCopy = isCopy;
- zTree.setting.edit.drag.isMove = isMove;
- zTree.setting.edit.drag.prev = prev;
- zTree.setting.edit.drag.inner = inner;
- zTree.setting.edit.drag.next = next;
- }
- $(document).ready(function(){
- $.fn.zTree.init($("#sys"), setting, nodes);
- setCheck();
- $("#copy").bind("change", setCheck); //利用bind函数把copy,move,perv,inner,next复选框的改变事件绑定到setCheck函数
- $("#move").bind("change", setCheck);
- $("#prev").bind("change", setCheck);
- $("#inner").bind("change", setCheck);
- $("#next").bind("change", setCheck);
- });
- </SCRIPT>
- </HEAD>
- <BODY>
- <div class="content_wrap">
- <div class="zTreeDemoBackground left">
- <ul id="sys" class="ztree"></ul>
- </div>
- <div class="right">
- <li><p>基本拖拽设置:<br/>
- <input type="checkbox" id="copy" class="checkbox first" checked /><span>允许复制</span>
- <input type="checkbox" id="move" class="checkbox " checked /><span>允许移动</span><br/>
- </li>
- <li><p>拖拽相对位置设置:<br/>
- <input type="checkbox" id="prev" class="checkbox first" checked /><span>prev</span>
- <input type="checkbox" id="inner" class="checkbox " checked /><span>inner</span>
- <input type="checkbox" id="next" class="checkbox " checked /><span>next</span><br/>
- </li>
- </div>
- </div>
- </BODY>
- </HTML>
javascript入门 之 zTree(十一 托拽事件(一))的更多相关文章
- javascript入门 之 ztree (十 checkbox选中事件)
<!DOCTYPE html> <HTML> <HEAD> <TITLE> ZTREE DEMO - beforeCheck / onCheck< ...
- javascript入门 之 ztree (八 一系列鼠标事件)
<!DOCTYPE html> <HTML> <HEAD> <meta http-equiv="content-type" content ...
- javascript入门 之 zTree(十二 托拽事件(二))
1.逻辑可能有不完善的地方,如果发现,请指出. <!DOCTYPE html> <HTML> <HEAD> <TITLE> ZTREE DEMO - d ...
- javascript入门 之 ztree (六 结点的点击和展开/折叠事件)
1.注意: 测试点击事件时,如果要测试取消选中和追加选中,如果按住ctrl和win键无用,则需要先用鼠标左键按住,然后,在松开左键的前几毫秒按住ctrl键便可! <!DOCTYPE html&g ...
- javascript入门 之 zTree(十三 移动/复制事件)
<!DOCTYPE html> <HTML> <HEAD> <TITLE> ZTREE DEMO - copyNode / moveNode</T ...
- javascript入门 之 zTree(十四 增删查改)(二)
<!DOCTYPE html> <HTML> <HEAD> <TITLE> ZTREE DEMO - addNodes / editName / rem ...
- javascript入门 之 zTree(十四 增删查改)(一)
<!DOCTYPE html> <HTML> <HEAD> <TITLE> ZTREE DEMO - beforeEditName / beforeRe ...
- javascript入门 之 ztree (九 单/复选框问题)
<!DOCTYPE html> <HTML> <HEAD> <meta http-equiv="content-type" content ...
- javascript入门 之 ztree(七 结点的查询)
<!DOCTYPE html> <HTML> <HEAD> <meta http-equiv="content-type" content ...
随机推荐
- css中:如何让一个图片(不知道宽高,宽高可能比父元素div大),在父元素div内部水平垂直居中,并且不溢出父元素div,且图片不拉伸变形(可等比例缩小)?
欢迎进入:http://www.jscwwd.com/article/list/%E5%85%A8%E9%83%A8 效果图: 不管父元素的宽高怎么变化,图片都是水平垂直居中的,并且不溢出父元素. 注 ...
- 浅析js中的堆和栈
这里先说两个概念:1.堆(heap)2.栈(stack)堆 是堆内存的简称.栈 是栈内存的简称.说到堆栈,我们讲的就是内存的使用和分配了,没有寄存器的事,也没有硬盘的事.各种语言在处理堆栈的原理上都大 ...
- (转)伪指令LTORG和LTONG浅析
原文地址:http://zqwt.012.blog.163.com/blog/static/1204468420103196564/ 定义和作用 LTORG或LTONG用于声明一个数据缓冲池(也称为文 ...
- 使用WireShark进行网络流量安全分析
WireShark的过滤规则 伯克利包过滤(BPF)(应用在wireshark的捕获过滤器上) ** 伯克利包过滤中的限定符有下面的三种:** Type:这种限定符表示指代的对象,例如IP地址,子网或 ...
- XSS-Labs(Level1-10)
Level-1 简单尝试 使用基础poc<script>alert(1)</script> 代码审计 <?php ini_set("display_errors ...
- [Dynamic Programming]动态规划之背包问题
动态规划之背包问题 例题 现有4样物品n = ['a', 'b', 'c', 'd'],重量分别为w = [2, 4, 5, 3],价值分别为v = [5, 4, 6, 2].背包最大承重c = 9. ...
- JDK下载、安装、卸载
学习java的朋友,第一课就是安装JDK,如果你连他都不会安装,那就非常尴尬,如果面试的时候如果问到这个问题,就Game over了,下面来看看怎么弄吧! 了解JDK JDK的全称是JavaSE De ...
- 彻底明白equals和hashCode
equals和hashCode方法 equals 我们知道equals是用来比较两个对象是否相等的,比如我们常用的String.equals方法 @Test public void test() { ...
- Oracle时间日期计算--计算某一日期为一年中的第几周
Oracle时间日期计算--计算某一日期为一年中的第几周 select to_char(sysdate-10,'yyyymmdd')||':iw:'||to_char(sysdate-10,'iw') ...
- netty实现群聊功能
[概述] 实现一个网络群聊工具.参与聊天的客户端消息是通过服务端进行广播的. 主要由两块组成:聊天服务器端(ChatServer)和聊天客户端(ChatClient). 聊天服务器(ChatServe ...