Latest web development tutorials
×

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 窗口

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 插件 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