首页 教程 JavaScript 开发教程 jQuery EasyUI 技术教程 jQuery EasyUI 拖放 – 创建拖放的购物车
jQuery EasyUI 技术教程
1 . jQuery EasyUI 教程2 . jQuery EasyUI 简介3 . jQuery EasyUI 应用 – 创建 CRUD 应用4 . jQuery EasyUI 应用 – 创建 CRUD 数据网格5 . jQuery EasyUI 应用 – 创建展开行明细编辑表单的 CRUD 应用6 . jQuery EasyUI 应用 – 创建 RSS Feed 阅读器7 . jQuery EasyUI 拖放 – 基本的拖动和放置8 . jQuery EasyUI 拖放 – 创建拖放的购物车9 . jQuery EasyUI 拖放 – 创建学校课程表10 . jQuery EasyUI 菜单与按钮 – 创建简单的菜单11 . jQuery EasyUI 菜单与按钮 – 创建链接按钮12 . jQuery EasyUI 菜单与按钮 – 创建菜单按钮13 . jQuery EasyUI 菜单与按钮 – 创建分割按钮14 . jQuery EasyUI 布局 – 为网页创建边框布局15 . jQuery EasyUI 布局 – 在面板中创建复杂布局16 . jQuery EasyUI 布局 – 创建折叠面板17 . jQuery EasyUI 布局 – 创建标签页(Tabs)18 . jQuery EasyUI 布局 – 动态添加标签页(Tabs)19 . jQuery EasyUI 布局 – 添加自动播放标签页(Tabs)20 . jQuery EasyUI 布局 – 创建 XP 风格左侧面板21 . jQuery EasyUI 数据网格 – 转换 HTML 表格为数据网格22 . jQuery EasyUI 数据网格 – 取得选中行数据23 . jQuery EasyUI 数据网格 – 添加查询功能24 . jQuery EasyUI 数据网格 – 添加工具栏25 . jQuery EasyUI 数据网格 – 创建复杂工具栏26 . jQuery EasyUI 数据网格 – 设置冻结列27 . jQuery EasyUI 数据网格 – 动态改变列28 . jQuery EasyUI 数据网格 – 格式化列29 . jQuery EasyUI 数据网格 – 设置排序30 . jQuery EasyUI 数据网格 – 自定义排序31 . jQuery EasyUI 数据网格 – 创建列组合32 . jQuery EasyUI 数据网格 – 添加复选框33 . jQuery EasyUI 数据网格 – 自定义分页34 . jQuery EasyUI 数据网格 – 启用行内编辑35 . jQuery EasyUI 数据网格 – 扩展编辑器36 . jQuery EasyUI 数据网格 – 列运算37 . jQuery EasyUI 数据网格 – 合并单元格38 . jQuery EasyUI 数据网格 – 创建自定义视图39 . jQuery EasyUI 数据网格 – 创建页脚摘要40 . jQuery EasyUI 数据网格 – 条件设置行背景颜色41 . jQuery EasyUI 数据网格 – 创建属性网格42 . jQuery EasyUI 数据网格 – 扩展行显示细节43 . jQuery EasyUI 数据网格 – 创建子网格44 . jQuery EasyUI 数据网格 – 使用虚拟滚动视图显示海量数据45 . jQuery EasyUI 数据网格 – 添加分页组件46 . jQuery EasyUI 窗口 – 自定义窗口工具栏47 . jQuery EasyUI 窗口 – 窗口与布局48 . jQuery EasyUI 窗口 – 创建对话框49 . jQuery EasyUI 窗口 – 自定义带有工具条和按钮的对话框50 . jQuery EasyUI 树形菜单 – 使用标记创建树形菜单51 . jQuery EasyUI 树形菜单 – 创建异步树形菜单52 . jQuery EasyUI 树形菜单 – 树形菜单添加节点53 . jQuery EasyUI 树形菜单 – 创建带复选框的树形菜单54 . jQuery EasyUI 树形菜单 – 树形菜单拖放控制55 . jQuery EasyUI 树形菜单 – 树形菜单加载父/子节点56 . jQuery EasyUI 树形菜单 – 创建基础树形网格57 . jQuery EasyUI 树形菜单 – 创建复杂树形网格58 . jQuery EasyUI 树形菜单 – 树形网格动态加载59 . jQuery EasyUI 树形菜单 – 树形网格添加分页60 . jQuery EasyUI 树形菜单 – 树形网格惰性加载节点61 . jQuery EasyUI 表单 – 创建异步提交表单62 . jQuery EasyUI 表单 – 表单验证63 . jQuery EasyUI 表单 – 创建树形下拉框(ComboTree)64 . jQuery EasyUI 表单 – 格式化下拉框(ComboBox)65 . jQuery EasyUI 表单 – 过滤下拉数据网格(ComboGrid)66 . jQuery EasyUI 插件67 . jQuery EasyUI 扩展

jQuery EasyUI 拖放 – 创建拖放的购物车

jQuery EasyUI 拖放 - 创建拖放的购物车

如果您能够通过您的 Web 应用简单地实现拖动和放置,您就会知道一些特别的东西。通过 jQuery EasyUI,我们在 Web 应用中可以简单地实现拖放功能。

在本教程中,我们将向您展示如何创建一个启用用户拖动和放置用户想买的商品的购物车页面。购物篮中的物品和价格将更新。

显示页面上的商品

    <ul class="products">
        <li>
            <a href="#" class="item">
                <img src="images/shirt1.gif"/>
                <div>
                    <p>Balloon</p>
                    <p>Price:$25</p>
                </div>
            </a>
        </li>
        <li>
            <a href="#" class="item">
                <img src="images/shirt2.gif"/>
                <div>
                    <p>Feeling</p>
                    <p>Price:$25</p>
                </div>
            </a>
        </li>
        <!-- other products -->
    </ul>

正如您所看到的上面的代码,我们添加一个包含一些 <li> 元素的 <ul> 元素来显示商品。所有商品都有名字和价格属性,它们包含在 <p> 元素中。

创建购物车

    <div class="cart">
        <h1>Shopping Cart</h1>
        <table id="cartcontent" style="width:300px;height:auto;">
            <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>
        <p class="total">Total: $0</p>
        <h2>Drop here to add to cart</h2>
    </div>

我们使用数据网格(datagrid)来显示购物篮中的物品。

拖动克隆的商品

    $('.item').draggable({
        revert:true,
        proxy:'clone',
        onStartDrag:function(){
            $(this).draggable('options').cursor = 'not-allowed';
            $(this).draggable('proxy').css('z-index',10);
        },
        onStopDrag:function(){
            $(this).draggable('options').cursor='move';
        }
    });

请注意,我们把 draggable 属性的值从 'proxy' 设置为 'clone',所以拖动元素将由克隆产生。

放置选择商品到购物车中

    $('.cart').droppable({
        onDragEnter:function(e,source){
            $(source).draggable('options').cursor='auto';
        },
        onDragLeave:function(e,source){
            $(source).draggable('options').cursor='not-allowed';
        },
        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]));
        }
    });
    var data = {"total":0,"rows":[]};
    var totalCost = 0;
    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);
    }    

每当放置商品的时候,我们首先得到商品名称和价格,然后调用 'addProduct' 函数来更新购物篮。

下载 jQuery EasyUI 实例

jeasyui-dd-shopping.zip