Jquery 快速构建可拖曳的购物车DragDrop


Posted in Javascript onNovember 30, 2009

这样一来,购买者只需要把自己感兴趣的商品拖曳到自己的购物车中,也可以从购物车中删除商品 同时更新购物车的总体价格和数量。
那咱们就开始实例吧,本实例并没有链接数据库读取数据来初始化Products,而是创建了一些虚拟的商品如下:
1、 创建Product实体类

public class Product 
{ 
public string Code { get; set; } 
public string Name { get; set; } 
public string Description { get; set; } 
public double Price { get; set; } 
} 
[code] 
2、 构建商品List<Product> 
[code] 
public class Product 
{ 
public string Code { get; set; } 
public string Name { get; set; } 
public string Description { get; set; } 
public double Price { get; set; } 
}

3、创建DataList并绑定List<Product>
<asp:DataList ID="dlProducts" RepeatColumns="3" 
RepeatDirection="Horizontal" runat="server"> 
<ItemTemplate> 
<div class="productItemStyle" price='<%# Eval("Price") %>' 
code='<%# Eval("Code") %>' id='item_<%# Container.ItemIndex + 1 %>'> 
<li> 
<%# Eval("Code") %> 
</li> 
<li> 
<%# Eval("Name") %> 
</li> 
<li> 
<%# Eval("Description") %> 
</li> 
<li> 
$<%# Eval("Price") %> 
</li> 
</div> 
</ItemTemplate> 
</asp:DataList> 
private void BindData() 
{ 
var products = GetProducts(); 
dlProducts.DataSource = products; 
dlProducts.DataBind(); 
}

productItemStyle 样式名称
Container.ItemIndex动态生成连续的商品编号
Jquery 快速构建可拖曳的购物车DragDrop
4、 生成Products Div Draggable
下载最新的Jquery JS文件及其UI文件:
<script language="javascript" type="text/javascript" src="jquery-1.2.6.min.js"></script> 
<script language="javascript" type="text/javascript" 
src="jquery-ui-personalized-1.6rc4.min.js"></script>

页面初始化时生成Div Draggable
$(document).ready(function() { 
$(".productItemStyle").draggable({ helper: "clone", opacity: "0.5" }); 
)};

5、创建一个DropZone
DropZones 是购物车区域
$(".dropZone").droppable( 
{ 
accept: ".productItemStyle", 
hoverClass: "dropHover", 
drop: function(ev, ui) { 
var droppedItem = ui.draggable.clone().addClass("droppedItemStyle"); 
var productCode = droppedItem[0].attributes["code"].nodeValue; 
var productPrice = 
getFormattedPrice(droppedItem[0].attributes["price"].nodeValue); 
var removeLink = document.createElement("a"); 
removeLink.innerHTML = "Remove"; 
removeLink.className = "deleteLink"; 
removeLink.href = "#"; 
removeLink.onclick = function() 
{ 
$(".dropZone").children().remove("#" + droppedItem[0].id); 
updateTotal(productPrice * (-1)); 
} 
droppedItem[0].appendChild(removeLink); 
$(this).append(droppedItem); 
updateTotal(productPrice); 
} 
} 
);

Accept参数:展示Class= “productItemStyle”的Div
hoverClass参数:当有Product放到DropZone时的样式
drop函数:当Product拖放到DropZone时出发的函数,此函数主要做了一个Product Item的Clone,价格的计算、添加Remove按钮以及到点击Remove按钮时所触发的事件。
价格的计算updateTotal()函数
// update the total! 
function updateTotal(price) { 
total += parseFloat(price); 
$("#total").html(total.toFixed(2)); 
$(".shoppingCartTotal").effect("bounce"); 
}

最终效果如下图:
Jquery 快速构建可拖曳的购物车DragDrop
英文原文地址:http://www.codeproject.com/KB/aspnet/JQueryShoppingCart.aspx
Javascript 相关文章推荐
jQuery学习笔记之控制页面实现代码
Feb 27 Javascript
防止登录页面出现在frame中js代码
Jul 22 Javascript
jquery读取xml文件实现省市县三级联动的方法
May 29 Javascript
数据结构中的各种排序方法小结(JS实现)
Jul 23 Javascript
JS中使用正则表达式g模式和非g模式的区别
Apr 01 Javascript
让div运动起来 js实现缓动效果
Jul 06 Javascript
微信小程序自定义模态对话框实例详解
Aug 16 Javascript
完美解决手机网页中输入框被输入法遮挡的问题
Dec 19 Javascript
JS实现点击拉拽轮播图pc端移动端适配
Sep 05 Javascript
JavaScript中var的重要性实例分析
Jul 09 Javascript
微信小程序swiper实现文字纵向轮播提示效果
Jan 21 Javascript
vue操作dom元素的3种方法示例
Sep 20 Javascript
JavaScript 学习笔记 Black.Caffeine 09.11.28
Nov 30 #Javascript
Ruffy javascript 学习笔记
Nov 30 #Javascript
jquery 分页控件实现代码
Nov 30 #Javascript
JS 动态获取节点代码innerHTML分析 [IE,FF]
Nov 30 #Javascript
Aptana调试javascript图解教程
Nov 30 #Javascript
jQuery chili图片远处放大插件
Nov 30 #Javascript
document.body.scrollTop 值总为0的解决方法 比较常见的标准问题
Nov 30 #Javascript
You might like
PHP中MVC模式的模板引擎开发经验分享
2011/03/23 PHP
用PHP实现小写金额转换大写金额的代码(精确到分)
2012/01/10 PHP
php阳历转农历优化版
2016/08/08 PHP
PHP操作redis实现的分页列表,新增,删除功能封装类与用法示例
2018/08/04 PHP
PHP 超级全局变量相关总结
2020/06/30 PHP
弹出广告特效(一个IP只弹出一次)的代码
2007/07/27 Javascript
jquery.cookie.js 操作cookie实现记住密码功能的实现代码
2011/04/27 Javascript
jQuery中:selected选择器用法实例
2015/01/04 Javascript
浅谈Jquery为元素绑定事件
2015/04/27 Javascript
JavaScript中的toLocaleLowerCase()方法使用详解
2015/06/06 Javascript
js仿淘宝和百度文库的评分功能
2016/05/15 Javascript
sencha ext js 6 快速入门(必看)
2016/06/01 Javascript
JS原型链 详解及示例代码
2016/09/06 Javascript
JS 数组和对象的深拷贝操作示例
2020/06/06 Javascript
jQuery中getJSON跨域原理的深入讲解
2020/09/02 jQuery
Python的Bottle框架中获取制定cookie的教程
2015/04/24 Python
浅谈python jieba分词模块的基本用法
2017/11/09 Python
深入理解Python3 内置函数大全
2017/11/23 Python
Python搭建FTP服务器的方法示例
2018/01/19 Python
Python json模块dumps、loads操作示例
2018/09/06 Python
python 进程的几种创建方式详解
2019/08/29 Python
Python实现CNN的多通道输入实例
2020/01/17 Python
Python如何获取文件指定行的内容
2020/05/27 Python
Python基于yaml文件配置logging日志过程解析
2020/06/23 Python
python中翻译功能translate模块实现方法
2020/12/17 Python
纯css3实现的动画按钮的实例教程
2014/11/17 HTML / CSS
MVMT手表官方网站:时尚又实惠的高品质手表
2016/12/04 全球购物
触发器(trigger)的功能都有哪些?写出一个触发器的例子
2012/09/17 面试题
师范生自荐信
2013/10/27 职场文书
幼儿园中班教学反思
2014/02/10 职场文书
文明演讲稿范文
2014/05/12 职场文书
2014年社区宣传工作总结
2014/12/02 职场文书
药店营业员岗位职责
2015/04/14 职场文书
给老婆的保证书怎么写
2015/05/08 职场文书
2016年国培研修日志
2015/11/13 职场文书
使用SQL实现车流量的计算的示例代码
2022/02/28 SQL Server