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 ...
随机推荐
- 基于 HTML + WebGL 结合 23D 的疫情地图实时大屏 PC 版【转载】
前言 2019年12月以来,湖北省武汉市陆续发现了多例肺炎病例,现已证实为一种新型冠状病毒感染引起的急性呼吸道传染病并蔓延全国,肺炎疫情牵动人心,人们每天起来第一件事变成了关注疫情进展,期望这场天灾早 ...
- 浅析Redis分布式锁---从自己实现到Redisson的实现
当我们在单机情况下,遇到并发问题,可以使用juc包下的lock锁,或者synchronized关键字来加锁.但是这俩都是JVM级别的锁,如果跨了JVM这两个锁就不能控制并发问题了,也就是说在分布式集群 ...
- CentOS7采用tar.gz包方式安装Mysql5.7
软件:VMware Linux版本:CentOS 7 一.安装mysql(采用tar.gz包安装Mysql5.7) 1.安装开发工具包 [root@localhost ~]# yum groups m ...
- Axure 文本框去掉边框 富文本 粘贴文字图标
在今天做原型的过程中,碰到两个问题: 1 文本框该如何去掉边框 2 富文本粘贴文字图标 第一个问题:首先是思路错了,又跑到元件上面找边框,跑到style里面去border的线,结果是不成功. 正解:属 ...
- 「建议心心」要就来15道多线程面试题一次爽到底(1.1w字用心整理)
. 本文是给**「建议收藏」200MB大厂面试文档,整理总结2020年最强面试题库「CoreJava篇」**写的答案,所有相关文章已经收录在码云仓库:https://gitee.com/bingqil ...
- Spinner 用法
</Spinner> <TextView android:layout_width="wrap_content" android:layout_height=&q ...
- Mysql数据库设置权限
这里使用cmd窗口进行权限设置. 以管理员账号连接数据库 创建数据库 create database 数据库名字 default charset=utf8; 查看用户 select user,host ...
- git push错误,如何回滚
--> git push Counting objects: 81, done.Delta compression using up to 4 threads.Compressing objec ...
- PAT-B 1005. 继续(3n+1)猜想 (25) c++
1005. 继续(3n+1)猜想 (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 卡拉兹(Callatz ...
- 强化学习之五:基于模型的强化学习(Model-based RL)
本文是对Arthur Juliani在Medium平台发布的强化学习系列教程的个人中文翻译,该翻译是基于个人分享知识的目的进行的,欢迎交流!(This article is my personal t ...