小悠学习——快乐工作,悠闲生活.超全的IT开发手册!
HTML CSS JAVASCRIPT SQL PHP BOOTSTRAP JQUERY ANGULAR XML
×

jQuery EasyUI 教程

jQuery EasyUI 教程 jQuery EasyUI 简介

jEasyUI 应用

jEasyUI 创建 CRUD 应用 jEasyUI 创建 CRUD 数据网格 jEasyUI 表单的 CRUD 应用 jEasyUI 创建 RSS 阅读器

jEasyUI 拖放

jEasyUI 基本的拖动和放置 jEasyUI 创建拖放的购物车 jEasyUI 创建学校课程表

jEasyUI 菜单与按钮

jEasyUI 创建简单的菜单 jEasyUI 创建链接按钮 jEasyUI 创建菜单按钮 jEasyUI 创建分割按钮

jEasyUI 布局

jEasyUI 创建边框布局 jEasyUI 创建复杂布局 jEasyUI 创建折叠面板 jEasyUI 创建标签页 jEasyUI 动态添加标签页 jEasyUI 添加自动播放标签页 jEasyUI 创建 XP 风格左侧面板

jEasyUI 数据网格

jEasyUI 转换 HTML 表格为数据网格 jEasyUI 取得选中行数据 jEasyUI 添加查询功能 jEasyUI 添加工具栏 jEasyUI 创建复杂工具栏 jEasyUI 设置冻结列 jEasyUI 动态改变列 jEasyUI 格式化列 jEasyUI 设置排序 jEasyUI 自定义排序 jEasyUI 创建列组合 jEasyUI 添加复选框 jEasyUI 自定义分页 jEasyUI 启用行内编辑 jEasyUI 扩展编辑器 jEasyUI 列运算 jEasyUI 合并单元格 jEasyUI 创建自定义视图 jEasyUI 创建页脚摘要 jEasyUI 条件设置行背景颜色 jEasyUI 创建属性网格 jEasyUI 扩展行显示细节 jEasyUI 创建子网格 jEasyUI 显示海量数据 jEasyUI 添加分页组件

jEasyUI 窗口

jQuery EasyUI 窗口 - 创建简单窗口 jEasyUI 自定义窗口工具栏 jEasyUI 窗口与布局 jEasyUI 创建对话框 jEasyUI 自定义对话框

jEasyUI 树形菜单

jEasyUI 使用标记创建树形菜单 jEasyUI 创建异步树形菜单 jEasyUI 树形菜单添加节点 jEasyUI 创建带复选框的树形菜单 jEasyUI 树形菜单拖放控制 jEasyUI 树形菜单加载父/子节点 jEasyUI 创建基础树形网格 jEasyUI 创建复杂树形网格 jEasyUI 树形网格动态加载 jEasyUI 树形网格添加分页 jEasyUI 树形网格惰性加载节点

jEasyUI 表单

jEasyUI 创建异步提交表单 jEasyUI 表单验证 jEasyUI 创建树形下拉框 jEasyUI 格式化下拉框 jEasyUI 过滤下拉数据网格

jEasyUI 参考手册

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