<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Drag and drop</title>
<link rel="stylesheet" type="text/css" href="../pubjs/ext/resources/css/ext-all.css">
<script type="text/javascript" src="../pubjs/ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="../pubjs/ext/ext-all-debug.js"></script>
<script type="text/javascript" src="./dragAndDropTest.js"></script>
</head>
<body>
<div id="bigDrag" style="background:#aabbaa;width:100px;height:200px;overflow-y: hidden;float:left;">
<div id="dragMe" style="background:#00ff00;width:100px;height:100px;overflow-y: hidden;">This is the source here!!!</div>
</div>
<div id="dropMe" style="background:#00ff00;width:100px;height:200px;overflow-y: hidden;float:left;">This is the target here!!!</div>
<h1>今天</h1>
<ul id="today">
<li>逛商场</li>
<li>理发</li>
</ul>
<h1>明天</h1>
<ul id="tmrw">
<li>看医生</li>
</ul>
<div id="people" style="background:#aaffcc;width:200px;height:300px;overflow-y: hidden;float:left;"></div>
<div id="detail" style="background:#ccffaa; overflow-y: hidden;float:left;"></div>
</body>
</html>
/**
* 一.最简单的调用拖放
* 1.DragSource 用来定义可以拖动的对象
* 2.DropTarget 用来定义可以放置的地方
* 1>使用notifyDrop.时返回true表示可以放置
* 3.修改notifyDrop在操作时增加元素操作
* 4.使用 dragZone进行一组元素中的单一元素操作
* 1>可以使用Ext.dd.Registry.register对各元素进行注册
* 5.使用dropZone对一组元素参允许放置地
* 1>对onNodeDrop方法进行重写以对元素进行操作
* 6.学习使用dataView.
* 1>使用getDragData方法返回移动的无素信息
* 2>动态对元素进行加载
*/
var ddMain = function(){
var _firstDragTest = function(){
new Ext.dd.DragSource("dragMe");
new Ext.dd.DropTarget("dropMe", {
notifyDrop : function() {
return true
}
});
var el = Ext.get("dropMe")
var cfg = {};
el.ddScrollConfig = cfg;
Ext.dd.ScrollManager.register(el);
};
//增加方法使每个节点捕捉方法
var _drop = function(dropNodeData,source,event,dragNodeData){
//原元素容器
var oldContainer = source.el.dom;
//现无素容器
var newContainer = this.getEl();
//原来元素
var nowEl = source.dragData.ddel;
//增加元素
oldContainer.removeChild(nowEl);
newContainer.appendChild(nowEl);
console.debug(dropNodeData,source,event,dragNodeData);
return true;
}
//根两个列表,可以把A列表中内容拖到B列表的内容中去.
var _useDDTest = function(){
//定义源
new Ext.dd.DragZone("today");
new Ext.dd.DragZone("tmrw");
//注册所有li元素可拖拉
var liTags = document.getElementsByTagName("li");
for(var i = 0;i < liTags.length;i++){
Ext.dd.Registry.register(liTags[i],{name:"ss"});
}
//定义目标
var cfg = {onNodeDrop:_drop};
new Ext.dd.DropZone("today",cfg);
new Ext.dd.DropZone("tmrw",cfg);
};
var orgJsonData = [[
1,
"java",
"sun",
"bj",
"image/de.png"
],[
2,
"oracle",
"oracle",
"fz",
"image/fr.png"
],[
3,
"vb.net",
"microsoft",
"ly",
"image/us.png"
]
];
//define a store
var personStore = new Ext.data.SimpleStore({
data:orgJsonData,
fields:["id","name","country","city","image"]
});
//use dataView 定义两个列表,A列表从数据库中加载,当A拖放到B时,自动信息加载到B上.
var _dataViewTest = function(){
//定义dataView用来保存记录信息
var people = new Ext.DataView({
tpl:new Ext.XTemplate(
'<tpl for=".">',
'<div class="person">',
'<h1>',
'{name}', //values 即store的record
'</h1>',
'<div>',
'<img width="64" height="64" src="{image}" />',
'</div>',
'</div>',
'</tpl>'
),
itemSelector: 'div.person',
store:personStore
});
//附加到people层上
people.render("people");
//定义返回值信息getDragData返回值信息
new Ext.dd.DragZone(people.getEl(), {
getDragData : function(e){
var container = e.getTarget("div.person",5,true);
if(container){
return {
ddel:container.down("h1").dom,
record:people.getRecord(container.dom)
};
}
return false;
}
});
//定义form信息
var winForm = new Ext.form.FormPanel({
renderTo : "detail",
width : 250,
height : 200,
defaultType : "textfield",
items : [{
fieldLabel : "姓名",
name : "name"
}, {
fieldLabel : "国家",
name : "country"
}, {
fieldLabel : "城市",
name : "city"
}],
title:"个人信息中心"
});
//加载from的notifyDrop信息
new Ext.dd.DropTarget(winForm.getEl(), {
notifyDrop : function(source,e,data) {
//取数据
var record = source.dragData.record;
winForm.getForm().loadRecord(record);
//删除原始对象
//_deleteSourceEl(source,e,data);
return true;
}
});
},
_deleteSourceEl = function(source,e,data){
//查找原容器
var oldConatiner = source.el.dom;
//查找移动对象
var oldObj = source.dragData.ddel;
var oObj = Ext.fly(oldObj).up("div");
//删除
//Ext.destroy(oObj);
oObj.remove();
}
return {
init : function(){
//Ext.dd.DragDropMgr.mode = Ext.dd.DragDropMgr.INTERSECT;
_firstDragTest();
// _useDDTest();
_dataViewTest();
//Ext.dd.ScrollManager.register("dragMe");
}
}
}();
Ext.onReady(ddMain.init,ddMain,true);
分享到:
相关推荐
14-4-xp32-64-dd-ccc-pack2_new.exe amd显示卡驱动程序 for xp
标题中的“dd.zip_c语言dd_ddc学习”表明这是一个关于C语言学习的资源包,其中可能包含了一些示例代码、项目文件以及相关的配置文件。"dd"可能是该项目或代码库的名称,而"ddc"可能代表某种特定的学习路径、教程系列...
小米路由器Pro作为一款深受用户喜爱的智能路由器产品,其性能稳定、功能强大,而“brcm4709_r2d_all_dd1c4_2.24.10.bin”则是这款路由器的一个重要固件,即我们常说的ROM(Read-Only Memory)。此版本的ROM被标记为...
总结来说,DD驱动级鼠键模块是一个用于易语言环境的驱动级编程组件,主要用于鼠标和键盘的高级控制,具有丰富的功能和源码可供学习。它可以帮助开发者深入理解驱动级编程,提升应用程序的性能和响应速度,但同时也...
总之,"DataReport - New-20191119-2_www.dd029_vb.net_" 是一个基于VB.NET的财务报告生成工具,具备数据处理、报告生成和可视化功能,可能在www.dd029网站上有相关的学习资源和支持。它涉及的技术包括VB.NET编程、...
在这个名为"DL_DD_MIMO-master_深度学习_mimo_学习信道_深度学习信道_信道估计_源码.zip"的压缩包中,我们可以期待找到关于深度学习应用于MIMO信道估计的相关代码实现。信道估计是无线通信中一个至关重要的环节,它...
基于深度学习的,信道估计,mimo,能运行
adm_lf15prs_payment_premium_grp_dd
标题中的"10-2_legacy_vista32-64_dd_ccc.zip"是一个压缩包文件,其中包含的"10-2_legacy_vista32-64_dd_ccc.exe"是一个可执行文件,用于安装特定的显卡驱动程序。这个驱动程序主要面向的是ATI(现已被AMD收购)的...
本篇文章将基于提供的"Pop_java_pop_pretty5dd_"项目源码,详细解析如何使用Java在Android中实现一个简洁易用的气泡弹出窗口。 首先,我们需要了解气泡窗口的基本结构。气泡通常由一个背景图片(通常是半透明的)和...
ebac_dehumidifiers_DD300_Manual
ebac_dehumidifiers_DD200_Manual
ebac_dehumidifiers_DD300_Brochure
ebac_dehumidifiers_DD300_Wiring_Diagram
ebac_dehumidifiers_DD200_Wiring_Diagram
ebac_dehumidifiers_DD200_Brochure
在这个名为"DL_DD_MIMO-master_深度学习_mimo_学习信道_深度学习信道_信道估计.zip"的压缩包文件中,很可能是包含了一个深度学习模型的代码库,用于研究和实现MIMO系统中的信道学习和信道估计。这个项目可能涵盖了...
标题中的“dd.rar_dd_dd-tools_sort algorithm_多关键字 排序_多关键字排序”表明这是一个关于使用dd-tools实现多关键字排序算法的资源包。这里我们将深入探讨多关键字排序算法的概念、应用场景以及常见实现方法。 ...
显卡8-9_xp32_dd_68898.exe
Win系统一键安装Linux系统_win_dd_linux