`

ExtJs拖放入门

阅读更多
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Untitled Page</title>

    <link rel="stylesheet" type="text/css" href="../javascript library/css/ext-all.css"/>

	<script type="text/javascript" src="../javascript library/ext-base.js"></script>
	<script type="text/javascript" src="../javascript library/ext-all.js"></script>

    <style type='text/css'>
        body{font-size: 12px; margin: 10px;}
        
        .block {
        	border: 1px red solid;
        	height: 80px;
        	margin-top: 50px;
        	padding: 20px 0 0 20px;
        	clear: both;
        }
        
        .item {
        	border: 1px #000 solid;
        	margin-right: 10px;
        	width: 60px;
        	height: 40px;
        	text-align: center;
        	padding-top: 20px;
        	color: White;
        	float: left;
        	cursor: pointer;
        }
        
        .BorderOver{border:dashed 2px #00f; }
     </style>
</head>

<body>
    <script type="text/javascript">
        Ext.onReady(function() {
        	var proxy = new Ext.dd.DDProxy("proxy");  //建立一个可以拖动的对象
        	//(ExtJs的拖动组件分二大类,DDProxy就是要拖动的东西,而DDTarget就是拖动后可以扔进去的目标容器区)        
        	//以下建立了三个拖动源DropSource(继承自DDProxy可以查看官方文档),并标明gruop为dd
        	var proxy_red = new Ext.dd.DragSource('proxy_red', { group: 'dd'});
        	var proxy_green = new Ext.dd.DragSource('proxy_green', { group: 'dd' });
        	var proxy_black = new Ext.dd.DragSource('proxy_black', { group: 'dd' });
        	
        	//拖动完成的事件
        	proxy_red.afterDragDrop = function(target, e, id) {
        		var destEl = Ext.get(id);
        		var srcEl = Ext.get(this.getEl());
        		
        		if (destEl.dom.id == 'target2') {
        			if(srcEl.dom.id != 'proxy_red') {
        				destEl.dom.style.border = 'solid #000 1px';
        				alert('此区域仅接受红色色块');
        				return false;
        			}
        		}
        		var sColor = srcEl.dom.id.split('_')[1];  //取得拖动源id后面的一部分,即proxy_red后面的red;
                destEl.dom.style.backgroundColor = sColor; //设置目标id的背景色
                destEl.dom.style.border = "solid #000 1px";
            };
            
            proxy_red.onDragEnter = function(e, id) {
                Ext.get(id).dom.style.border = 'dashed #00f 2px';
                Ext.get(id).dom.style.backgroundColor = '#fff';
                
                 // 添加CSS颜色   
			    if (id != this.el.dom.parentNode.id) {   
			        this.el.addClass('dropOK');   
			    }   
			    else {   
			        // 移除邀请   
			        this.onDragOut();   
			    }   

            }
                
            proxy_green.onDragOut = function(e, id) {
                Ext.get(id).dom.style.border = 'solid #000 1px';
            }
            
            proxy_green.afterDragDrop = proxy_red.afterDragDrop;  //设置为相同的事件处理函数。
            proxy_black.afterDragDrop = proxy_red.afterDragDrop;
           // proxy_green.onDragEnter = proxy_red.onDragEnter;  //设置为相同的事件处理函数。
           	proxy_black.onDragEnter = proxy_red.onDragEnter;
          //  proxy_green.onDragOut = proxy_red.onDragOut;  //设置为相同的事件处理函数。
           // proxy_black.onDragOut = proxy_red.onDragOut;   
            
            var target = new Ext.dd.DDTarget('target', 'dd');  //建立拖动目标区(这里的‘dd'与上面拖动源的’dd‘相同,
                //只有相同的group的DDProxy/DragSource才会接受)
            var target2 = new Ext.dd.DDTarget('target2', 'dd');    
        });
    </script>
    <div>
         <div id='proxy_red' class='item' style='background:red'>Red</div>
         <div id='proxy_green' class='item' style='background:green'>Green</div>
         <div id='proxy_black' class='item' style='background:black'>Black</div>
         <div id='proxy' class='item' style='color:Black'>Deplacer</div>
    </div>
    <div id="target" class="block">try to place the block into this block</div>
    <div id="target2" class="block">try to place the block into this block(only red block)</div>                   
</body>

 

说明:DDProxy是可拖动的对象。DragSource和DragTarget继承DDProxy。DragSource是可拖动的块,DragTarget是被拖动对象的容器。

  
  程序运行图片:

  

 

 

 

 

 

分享到:
评论

相关推荐

    extjs4 入门基础,form、grid、tree

    ExtJS 是一个强大的JavaScript 框架,专用于构建富客户端Web应用程序。它提供了一整套组件化的用户界面元素,包括表单(Form)、网格(Grid)、树形视图(Tree)等,使得开发者能够创建出功能丰富且交互性强的前端...

    Extjs入门教程(treePanel和GridPanel)

    总的来说,这门入门教程将带你进入ExtJS的世界,通过TreePanel和GridPanel的实践,你将掌握基本的组件使用和数据管理技巧,为构建更复杂的企业级应用打下基础。记得在实践中不断探索和实验,理论结合实际,才能真正...

    ExtJS入门教程(超级详细).PDF

    在“ExtJS入门教程(超级详细)”中,你可以期待学习到以下几个核心知识点: 1. **基本概念**:首先,了解ExtJS的基本架构和工作原理,包括MVC(Model-View-Controller)模式、组件模型和事件处理机制。 2. **安装与...

    Extjs3.x入门学习

    本篇将基于"Extjs3.x入门学习"这一主题,深入探讨相关知识点。 1. **EXT_JS实用开发指南**: 这份文档可能包含了关于ExtJS的基本概念、架构以及开发流程的介绍,帮助初学者快速上手。可能包括如何创建基本的页面...

    extjs的快速入门教程

    ### ExtJS快速入门教程知识点概览 #### 一、ExtJS简介 - **定义**: ExtJS是一个用JavaScript编写的前端框架,旨在简化Web应用程序的开发过程,尤其适用于创建丰富的交互式用户界面(RIA)。它独立于后端技术,可以...

    ExtJS5 整合Spring4之二

    - ExtJS5引入了新的功能,如Material设计风格、拖放改进、表单验证、数据包更新等,提高了用户体验和开发效率。 2. **Spring4**: - Spring是一个开源Java框架,主要用于简化企业级应用开发。Spring4增强了对Java...

    ExtJS 可视化设计器

    1. **组件拖放设计**:在ExtJS可视化设计器中,你可以通过拖放的方式选择各种预定义的组件(如表格、面板、按钮等)到工作区,并进行布局调整。这种直观的设计方式使得非程序员也能快速上手,创建复杂的UI结构。 2....

    ExtJs4学习文档资料

    "ExtJS入门教程(超级详细).pdf"是一个深入的初学者教程,可能涵盖了从安装到实际应用开发的全过程。这个教程可能会详细解释ExtJS的架构,包括模型(Model)、视图(View)、控制器(Controller)之间的关系,以及...

    Extjs4.0中文学习手册、入门详解

    除了以上内容,ExtJS 4.0还包括对图表、表格、表单、拖放、数据绑定、事件处理等方面的改进和增强。学习ExtJS需要深入了解其组件体系、布局机制、数据绑定以及MVC架构。同时,持续查阅官方文档和社区资源,结合实践...

    ExtJs可视化开发工具3.0

    对于初学者而言,ExtJs可视化开发工具3.0提供了一个学习ExtJS的绝佳平台,它降低了入门难度,使得开发者能更快地掌握这个强大的JavaScript框架。对于经验丰富的开发者,这个工具则提供了一种快速原型设计和快速迭代...

    ExtJs-4.1.1a-gpl+中午手册+入门教程

    通过这个"ExtJS-4.1.1a-gpl+中午手册+入门教程",开发者可以获得全面的学习资源,快速上手ExtJS开发,并利用其强大的功能构建高质量的Web应用程序。记得查阅文档以获取详细的API信息和示例代码,这对深入理解和使用...

    ExtJS 3.0 Designer Preview (官方的IDE可视化工具)

    这个工具允许开发者通过拖放界面组件和配置属性,快速构建复杂的用户界面,大大简化了 ExtJS 开发流程。在这个版本中,重点是提高开发效率和用户体验。 首先,我们要理解 ExtJS 是什么。ExtJS 是一个基于 ...

    精通JS脚本之ExtJS框架.part2.rar

    《精通JS脚本之ExtJS框架》由浅入深地讲解了ExtJS在Web开发中的相关技术。本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计...

    ext js2.3的例子

    5. **拖放功能**:内置拖放API,使组件之间可以通过拖放实现交互。 6. **图表和图形**:EXT JS 2.3可能包含了简单的图表功能,用于数据可视化。 7. **可扩展性**:EXT JS具有良好的模块化设计,方便开发者扩展和...

    extjs4.0开发教程

    #### 三、ExtJS 4.0 入门教程 ##### 1. 获取 ExtJS 4.0 要开始使用 ExtJS 4.0,首先需要从官方网站下载框架。访问 [http://extjs.com/download](http://extjs.com/download),选择合适的版本进行下载。对于初学者而...

    Ext学习资料适合入门

    【标题】与【描述】中提到的"Ext学习资料适合入门"是指ExtJS框架的学习资源,适合初学者使用。ExtJS是一个用于构建富客户端Web应用的JavaScript库,它提供了丰富的组件和API,能够帮助开发者创建功能强大的交互式...

    ExtJs 中文资料大全

    MHT是单一文件网页(MHTML)的格式,可能包含了ExtJS官方的基础入门教程。官方教程通常会介绍如何设置开发环境、创建第一个ExtJS应用、理解基本组件和布局,以及如何处理用户交互。这对于初学者来说是非常宝贵的...

    国信安Java培训之Ajax框架ExtJs

    6. **拖放功能**:如果涉及,可能会介绍如何在ExtJs中实现拖放交互。 7. **实战演练**:通过一个实际的小项目,演示如何从头到尾构建一个使用Ajax和ExtJs的Web应用。 总的来说,这个视频教程将为Java开发者提供一个...

    extjs javascript 开发工具 1

    总的来说,"extjs javascript 开发工具 1" 包含了开发ExtJS应用程序的基础工具,既有ExtJS的官方API文档,也有强大的WebStorm IDE,可以帮助开发者快速入门并高效地开发复杂的Web应用程序。通过深入学习和实践,...

Global site tag (gtag.js) - Google Analytics