6、easyUI-拖放事件及应用

一、EasyUI 基本的拖动和放置

直接代码看:

<!doctype html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="keywords" content="jquery,ui,easy,easyui,web">
    <meta name="description" content="easyui help you build your web page easily!">
    <title>6、easyui 拖放</title>
    <link rel="stylesheet" type="text/css" href="../../../ui/jquery-easyui-1.4.5/themes/default/easyui.css">
    <link rel="stylesheet" type="text/css" href="../../../ui/jquery-easyui-1.4.5/themes/icon.css">
    <link rel="stylesheet" type="text/css" href="../../../ui/jquery-easyui-1.4.5/themes/color.css">
    <script src="../../../ui/jquery-easyui-1.4.5/jquery.min.js"></script>
    <script src="../../../ui/jquery-easyui-1.4.5/jquery.easyui.min.js"></script>
    <script src="../../../ui/jquery-easyui-1.4.5/locale/easyui-lang-zh_CN.js"></script>
    <script>
        $(function(){
            $("#dd1").draggable({
                cursor:‘pointer‘//拖动时的CSS指针样式。
            });
            $("#dd2").draggable({
                proxy:‘clone‘
            });
            $("#dd3").draggable({
                    proxy:function(source){
                    var p = $(‘<div class="proxy">proxy</div>‘);
                    p.appendTo(‘body‘);
                    return p;
                }
            });
            $(‘#dds‘).draggable({
                handle:‘#titles‘ //开始拖动的句柄。
            });
        });
    </script>

</head>
<body>
    <div id="dd1" style="background: red;width:100px;height: 100px;" title="hhhh"></div>
    <!--revert="true" 如果设置为true,在拖动停止时元素将返回起始位置。-->
    <div id="dd2" style="background: black;width:100px;height: 100px;" revert="true"></div>
    <div id="dd3" style="background: grey;width:100px;height: 100px;"></div>
    <div id="dd" class="easyui-draggable" data-options="handle:‘#title‘" style="width:100px;height:100px;">
        <div id="title" style="background:#ccc;">title</div>
    </div>

    <div id="dds" style="width:100px;height:100px;">
        <div id="titles" style="background:#ccc;">title</div>
    </div> 

<a style="cursor: move;">2222</a>

</body>
</html>

二、购物车

<!doctype html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="keywords" content="jquery,ui,easy,easyui,web">
    <meta name="description" content="easyui help you build your web page easily!">
    <title>6-1、easyui 购物车</title>
    <link rel="stylesheet" type="text/css" href="../../../ui/jquery-easyui-1.4.5/themes/default/easyui.css">
    <link rel="stylesheet" type="text/css" href="../../../ui/jquery-easyui-1.4.5/themes/icon.css">
    <link rel="stylesheet" type="text/css" href="../../../ui/jquery-easyui-1.4.5/themes/color.css">
    <script src="../../../ui/jquery-easyui-1.4.5/jquery.min.js"></script>
    <script src="../../../ui/jquery-easyui-1.4.5/jquery.easyui.min.js"></script>
    <script src="../../../ui/jquery-easyui-1.4.5/locale/easyui-lang-zh_CN.js"></script>
    <style>
        /*开始 第二步 设置拖动区样式*/
        .products{
            list-style:none;
            margin-right:700px;
            padding:0px;
            height:100%;
        }
        .products li{
            display:inline;
            float:left;
            margin:10px;
        }
        .item{
            display:block;
            text-decoration:none;
        }
        .item img{
            border:1px solid #333;
        }
        .item p{
            margin:0;
            font-weight:bold;
            text-align:center;
            color:#c3c3c3;
        }
        /*结束 第二步 设置拖动区样式*/

        /*开始 第四步 设置放置区样式*/
        .cart{
            position:fixed;
            right:0;
            top:0;
            min-width:500px;
            height:100%;
            background:#ccc;
            padding:0px 10px;
        }
        h1{
            text-align:center;
            color:#555;
        }
        h2{
            position:absolute;
            font-size:16px;
            left:10px;
            bottom:20px;
            color:#555;
        }
        .total{
            margin:0;
            text-align:right;
            padding-right:20px;
        }
        /*结束 第四步 设置放置区样式*/
    </style>
    <script>
        var data = {"total":0,"rows":[]};
        var totalCost = 0;

        $(function(){
            /**开始 第五步 设置放置区中table的属性及样式**/
            $(‘#cartcontent‘).datagrid({//这段代码可以直接写在页面上   设置table clas="easyUI-datagrid" singleSelect="true" fitColumns="true"
                singleSelect:true,    //表格属性    如果为true,则只允许选择一行  不设置可以选择多行
                //fitColumns:true,//真正的自动展开/收缩列的大小,以适应网格的宽度,防止水平滚动。
                //同列属性,但是这些列将会被冻结在左侧。
                frozenColumns:[[
                    {field:‘name‘,title:‘name‘,width:100}
                ]] ,
                //设置表头
                columns:[[
                    {field:‘quantity‘,title:‘quantity‘,width:100,align:‘right‘},
                    {field:‘price‘,title:‘price‘,width:150,align:‘right‘} ,
                    {field:‘mark‘,title:‘mark‘,width:150,align:‘right‘} ,
                    {field:‘mark2‘,title:‘mark2‘,width:150,align:‘right‘}
                ]] ,
                ////调整列的位置,可用的值有:‘left‘,‘right‘,‘both‘。在使用‘right‘的时候用户可以通过拖动右侧边缘的列标题调整列 默认为right
                resizeHandle:‘both‘,
               // striped:true,//默认是false 显示斑马线效果
                rownumbers:true//显示一个行号默认不显示。
            });
            /**结束 第五步 设置放置区中table的属性及样式**/

            /**开始 第六步 设置拖动区的效果以及触发事件**/
            //拖动设置
            $(‘.item‘).draggable({
                revert:true,//如果设置为true,在拖动停止时元素将返回起始位置。默认为false
                proxy:‘clone‘,//在拖动的时候使用的代理元素,当使用‘clone‘的时候,将使用该元素的一个复制元素来作为替代元素

//                事件
                onStartDrag:function(){//在目标对象开始被拖动时触发。
                    $(this).draggable(‘options‘).cursor = ‘not-allowed‘;//设置被拖动时不允许再选中
                    $(this).draggable(‘proxy‘).css(‘z-index‘,10);//摄者克隆后的属性
                },
//                事件
                onStopDrag:function(){//在拖动停止时触发。
                    $(this).draggable(‘options‘).cursor=‘move‘;//设置鼠标属性为拖动形状
                }
            });
            /**结束 第六步 设置拖动区的效果以及触发事件**/

            /**开始 第七步 设置放置区的效果以及触发事件**/
            //放置
            $(‘.cart‘).droppable({//设置在div的class属性为cart的区域内都被视为放置区
                //在被拖拽元素到放置区内的时候触发,source参数表示被拖拽的DOM元素。
                onDragEnter:function(e,source){
                    $(source).draggable(‘options‘).cursor=‘auto‘;//设置拖动的鼠标样式
                },
                //在被拖拽元素经过放置区的时候触发,source参数表示被拖拽的DOM元素
                onDragOver:function(e,source){
                    $(‘.cart‘).css("background","#0088CC");//设置放置区背景色
                },
                //在被拖拽元素离开放置区的时候触发,source参数表示被拖拽的DOM元素。
                onDragLeave:function(e,source){
                    $(source).draggable(‘options‘).cursor=‘not-allowed‘;//设置拖动的鼠标样式
                    $(‘.cart‘).css("background","#CCC");//设置拖动的离开放置区,放置区的背景色
                },
                //在被拖拽元素放入到放置区的时候触发,source参数表示被拖拽的DOM元素。
                onDrop:function(e,source){
                    var name = $(source).find(‘p:eq(0)‘).html();//获取商品名称
                    var price = $(source).find(‘p:eq(1)‘).html();//获取商品价格
                    addProduct(name, parseFloat(price.split(‘$‘)[1]));//调用添加商品方法
                    $(‘.cart‘).css("background","#CCC");//设置放入到放置区,放置区的背景色
                }
            });
            /**结束 第七步 设置放置区的效果以及触发事件**/
        });

        //最后 添加物品方法函数
        function addProduct(name,price){
            function add(){
                for(var i=0; i<data.total; i++){
                    var row = data.rows[i];
                    if (row.name == name){
                        row.quantity += 1;
                        return;
                    }
                }
                data.total += 1;
                data.rows.push({
                    name:name,
                    quantity:1,
                    price:price
                });
            }
            add();
            totalCost += price;
            $(‘#cartcontent‘).datagrid(‘loadData‘, data);
            $(‘div.cart .total‘).html(‘Total: $‘+totalCost);
        }
    </script>
</head>
<body style="margin:0;padding:0;height:100%;background:#fafafa;">
    <!--开始 第一步    拖动区设置-->
    <ul class="products">
        <li>
            <a href="#" class="item">
                <img src="../../../img/shirt1.gif"/>
                <div>
                    <p>Balloon</p>
                    <p>Price:$25</p>
                </div>
            </a>
        </li>
        <li>
            <a href="#" class="item">
                <img src="../../../img/shirt2.gif"/>
                <div>
                    <p>Feeling</p>
                    <p>Price:$25</p>
                </div>
            </a>
        </li>
        <li>
            <a href="#" class="item">
                <img src="../../../img/shirt3.gif"/>
                <div>
                    <p>Elephant</p>
                    <p>Price:$25</p>
                </div>
            </a>
        </li>
        <li>
            <a href="#" class="item">
                <img src="../../../img/shirt4.gif"/>
                <div>
                    <p>Stamps</p>
                    <p>Price:$25</p>
                </div>
            </a>
        </li>
        <li>
            <a href="#" class="item">
                <img src="../../../img/shirt5.gif"/>
                <div>
                    <p>Monogram</p>
                    <p>Price:$25</p>
                </div>
            </a>
        </li>
        <li>
            <a href="#" class="item">
                <img src="../../../img/shirt6.gif"/>
                <div>
                    <p>Rolling</p>
                    <p>Price:$25</p>
                </div>
            </a>
        </li>
    </ul>
    <!--结束 第一步    拖动区设置-->

    <!--开始 第三步 设置放置区table及区域-->
    <div class="cart">
        <h1>Shopping Cart</h1>
        <div style="background:#fff">
        <table id="cartcontent">
            <thead>
                <!--<tr>
                    <th field="name" width=140>Name</th>
                    <th field="quantity" width=60 align="right">Quantity</th>
                    <th field="price" width=60 align="right">Price</th>
                </tr>-->
            </thead>
        </table>
        </div>
        <p class="total">Total: $0</p>
        <h2>Drop here to add to cart</h2>
    </div>
    <!--结束 第三步 设置放置区table及区域-->
</body>
</html>

三、课程表

<!doctype html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="keywords" content="jquery,ui,easy,easyui,web">
    <meta name="description" content="easyui help you build your web page easily!">
    <title>6-2、easyui 课程表</title>
    <link rel="stylesheet" type="text/css" href="../../../ui/jquery-easyui-1.4.5/themes/default/easyui.css">
    <link rel="stylesheet" type="text/css" href="../../../ui/jquery-easyui-1.4.5/themes/icon.css">
    <link rel="stylesheet" type="text/css" href="../../../ui/jquery-easyui-1.4.5/themes/color.css">
    <script src="../../../ui/jquery-easyui-1.4.5/jquery.min.js"></script>
    <script src="../../../ui/jquery-easyui-1.4.5/jquery.easyui.min.js"></script>
    <script src="../../../ui/jquery-easyui-1.4.5/locale/easyui-lang-zh_CN.js"></script>
    <style>
        .dragraera{
            width: 120px;
            float: left;
        }
        .dragraera table{
            background:#E0ECFF;
        }
        .dragraera td{
            background:#eee;
        }
        .item{
            text-align:center;
            border:1px solid #499B33;
            background:#fafafa;
            width:100px;
        }
        .right{
            float:right;
            width:600px;
        }
        .right table{
            background:#E0ECFF;
            width:100%;
        }
        .right td{
            background:#fafafa;
            text-align:center;
            padding:2px;
        }
        .right td{
            background:#E0ECFF;
        }
        .right td.drop{
            background:#fafafa;
            width:100px;
        }
        .right td.over{
            background:#FBEC88;
        }
        .assigned{
            border:1px solid #BC2A4D;
        }
    </style>
    <script>
        $(function(){
            $(".dragraera .item").draggable({
                revert:true,
                proxy:‘clone‘
            });

            $(".right .drop").droppable({
                onDragEnter:function(){
                    $(this).addClass(‘over‘);
                },
                onDragLeave:function(){
                    $(this).removeClass(‘over‘);
                },
                onDrop:function(e,source){
                    $(this).removeClass(‘over‘);
                    if ($(source).hasClass(‘assigned‘)){
                        $(this).append(source);
                    } else {
                        var c = $(source).clone().addClass(‘assigned‘);
                        $(this).empty().append(c);
                        c.draggable({
                            revert:true
                        });
                    }
                }
            });

        });
    </script>
</head>
<body style="margin:0;padding:0;height:100%;background:#fafafa;">
<div  style="width:750px;margin: 20px;">
    <div class="dragraera">
        <table>
            <tr><td><div class="item">语文</div></td></tr>
            <tr><td><div class="item">数学</div></td></tr>
            <tr><td><div class="item">英语</div></td></tr>
            <tr><td><div class="item">物理</div></td></tr>
            <tr><td><div class="item">化学</div></td></tr>
            <tr><td><div class="item">生物</div></td></tr>
            <tr><td><div class="item">政治</div></td></tr>
            <tr><td><div class="item">历史</div></td></tr>
            <tr><td><div class="item">地理</div></td></tr>
        </table>
    </div>
    <div class="right">
        <table>
            <tr>
                <td class="blank"></td>
                <td class="title">Monday</td>
                <td class="title">Tuesday</td>
                <td class="title">Wednesday</td>
                <td class="title">Thursday</td>
                <td class="title">Friday</td>
            </tr>
            <tr>
                <td class="time">08:00</td>
                <td class="drop"></td>
                <td class="drop"></td>
                <td class="drop"></td>
                <td class="drop"></td>
                <td class="drop"></td>
            </tr>
            <tr>
                <td class="time">09:00</td>
                <td class="drop"></td>
                <td class="drop"></td>
                <td class="drop"></td>
                <td class="drop"></td>
                <td class="drop"></td>
            </tr>
            <tr>
                <td class="time">10:00</td>
                <td class="drop"></td>
                <td class="drop"></td>
                <td class="drop"></td>
                <td class="drop"></td>
                <td class="drop"></td>
            </tr>
            <tr>
                <td class="time">11:00</td>
                <td class="drop"></td>
                <td class="drop"></td>
                <td class="drop"></td>
                <td class="drop"></td>
                <td class="drop"></td>
            </tr>
            <tr>
                <td class="time">12:00</td>
                <td class="drop"></td>
                <td class="drop"></td>
                <td class="drop"></td>
                <td class="drop"></td>
                <td class="drop"></td>
            </tr>
            <tr>
                <td class="time">13:00</td>
                <td class="lunch" colspan="5">Lunch</td>
            </tr>
            <tr>
                <td class="time">14:00</td>
                <td class="drop"></td>
                <td class="drop"></td>
                <td class="drop"></td>
                <td class="drop"></td>
                <td class="drop"></td>
            </tr>
            <tr>
                <td class="time">15:00</td>
                <td class="drop"></td>
                <td class="drop"></td>
                <td class="drop"></td>
                <td class="drop"></td>
                <td class="drop"></td>
            </tr>
            <tr>
                <td class="time">16:00</td>
                <td class="drop"></td>
                <td class="drop"></td>
                <td class="drop"></td>
                <td class="drop"></td>
                <td class="drop"></td>
            </tr>
        </table>
    </div>
</div>
</body>
</html>

时间: 2024-08-05 02:28:33

6、easyUI-拖放事件及应用的相关文章

原生拖拽,拖放事件(drag and drop)

原生拖拽,拖放事件(drag and drop) 拖拽,拖放事件可以通过拖拽实现数据传递,达到良好的交互效果,如:从操作系统拖拽文件实现文件选择,拖拽实现元素布局的修改. drag and drop事件流程 一个完整的drag and drop流程通常包含以下几个步骤: 设置可拖拽目标.设置属性draggable="true"实现元素的可拖拽. 监听dragstart设置拖拽数据 为拖拽操作设置反馈图标(可选) 设置允许的拖放效果,如copy,move,link 设置拖放目标,默认情况

Html5之高级-11 拖放API (拖放事件、dataTransfer对象、setDragImage方法)

一.拖放API WEB 拖放 - 在桌面应用程序上,可以将元素从一个位置拖放到另一个位置,但在Web上,开发者没有一种能够实现这种操作的标准技术,从而在Web上去实现这个功能并不太容易 - 在 HTML5 标准中引入了拖放API,从而使我们有可能开发出于桌面应用程序完全相同的 Web应用程序 源元素事件 - 在拖放 API 中引入了一些新的事件,其中有一些元素是由源元素(拖动的元素)触发,称之为源元素事件,另一些事件由目标元素触发(源元素投放的元素) - 源元素事件: - dragstart:当

HTML5拖放事件(Drag-and-Drop,DnD)

拖放 拖放是一种常见的特性,即抓取对象以后拖到另一个位置.在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放. 拖放是在“拖放源(drag source)”和“拖放目标(drop target)”之间传输数据的用户界面.下面例子将演示如何创建自定义拖放源和自定义拖放目标,前者传输数据而不是其文本内容,后者以某种方式相应拖放数据而不是仅显示它. 浏览器支持 Internet Explorer 9.Firefox.Opera 12.Chrome 以及 Safari 5 支持拖放. 注释:在

H5的拖放事件(拖拽删除)

今天我们来介绍一下h5的拖放事件: 拖放事件 H5的拖放事件提供了多个接口: 1.drag:当元素或者选中的文本被拖动时触发(每几百毫秒触发一次),应用在被拖拽元素上 2.dragend:当拖动操作结束时触发(通过释放鼠标按钮或者点击转义键),应用在被拖拽元素上 3.dragenter:当一个被拖动的元素或者选中的文本进入一个有效的放置目标时触发,应用在目标元素上 4.dragexit:当元素不再是拖动操作的直接选择元素时触发(很少使用) 5.dragleave:当拖动元素或者选中的文本离开有效

HTML5拖放事件-上传图片预览功能(学习笔记)

主要用到的知识点有dataTransfer对象和FileReader(读取文件信息) 1.创建简单的HTML标签: <body> <div id="box">请将图片拖拽至此</div> <ul></ul> </body> 2.给标签加上简单的样式: <style type="text/css"> div{ width: 300px; height: 300px; margin:10

Android事件详解——拖放事件DragEvent

1.Android拖放框架的作用? 利用Android的拖放框架,可以让用户用拖放手势把一个View中的数据移到当前layout内的另一个View中去. 2.拖放框架的内容? 1)拖放事件类 2)拖放监听器 3)其他辅助的方法和类 3.拖放过程? 拖放过程有四个基本步骤: 1)启动 为了响应用户开始拖动的手势,需要调用View的startDrag方法来通知系统.startDrag方法的参数需要指定所拖动的数据.元数据和绘制拖动阴影的回调方法. 作为响应,系统首先通过回调来获取拖动阴影,然后在设备

第40课 拖放事件深度剖析

1. Qt中的拖放事件 (1)拖放一个文件进入窗口时将触发拖放事件 (2)每一个QWidget对象都能够处理拖放事件 (3)拖放事件的处理函数为 void dragEnterEvent(QDragEnterEvent* e); void dropEvent(QDropEvent* e); 2. 拖放事件中的QMimeData (1)QMimeData是Qt中的多媒体数据类 (2)拖放事件通过QMimeData对象传递数据 (3)QMimeData支持多种不同类型的多媒体数据 (4)常MIME类型

17.QT-事件处理分析、事件过滤器、拖放事件

Qt事件处理介绍 Qt平台会将系统产生的消息转换为Qt事件 Qt事件是一个QEvent的对象 Qt事件用来描述程序内部或外部发生的动作 任意的QObject对象都具备事件处理的能力 Qt常见的事件继承图如下: QInputEvent:用户输入事件 QDropEvent:用户拖放事件 QPaintEvent:描述操作系统绘制GUI动作的事件 QCloseEvent:用户关闭窗口事件 QTimerEvent:计时器事件 事件处理方式顺序 1.Qt事件产生后立即被分发到QWidget对象 2.QWid

雷林鹏分享:jQuery EasyUI 拖放 - 创建拖放的购物车

jQuery EasyUI 拖放 - 创建拖放的购物车 如果您能够通过您的 Web 应用简单地实现拖动和放置,您就会知道一些特别的东西.通过 jQuery EasyUI,我们在 Web 应用中可以简单地实现拖放功能. 在本教程中,我们将向您展示如何创建一个启用用户拖动和放置用户想买的商品的购物车页面.购物篮中的物品和价格将更新. 显示页面上的商品 Balloon Price:$25 Feeling Price:$25 正如您所看到的上面的代码,我们添加一个包含一些 元素的 元素来显示商品.所有商

雷林鹏分享:jQuery EasyUI 拖放 - 基本的拖动和放置

jQuery EasyUI 拖放 - 基本的拖动和放置 本教程向您展示如何使 HTML 元素可拖动,在本例中,我们将创建三个 DIV 元素然后启用他们的拖动和放置. 首先,我们创建三个 元素: 对于第一个 元素,我们通过默认值让其可以拖动. $('#dd1').draggable(); 对于第二个 元素,我们通过创建一个克隆(clone)了原来元素的代理(proxy)让其可以拖动. $('#dd2').draggable({ proxy:'clone' }); 对于第三个 元素,我们通过创建自定