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 相关文章推荐
JS控制阿拉伯数字转为中文大写示例代码
Sep 04 Javascript
JSON 数字排序多字段排序介绍
Sep 18 Javascript
鼠标选择动态改变网页背景颜色的JS代码
Dec 10 Javascript
JS实现点击上移下移LI行数据的方法
Aug 05 Javascript
基于jQuery实现动态数字展示效果
Aug 12 Javascript
jquery实现漂亮的二级下拉菜单代码
Aug 26 Javascript
jQuery模仿京东/天猫商品左侧分类导航菜单效果
Jun 29 Javascript
原生node.js案例--前后台交互
Feb 20 Javascript
Vue异步组件使用详解
Apr 08 Javascript
Vue.use源码分析
Apr 22 Javascript
Easyui 关闭jquery-easui tab标签页前触发事件的解决方法
Apr 28 jQuery
JavaScript offset实现鼠标坐标获取和窗口内模块拖动
May 30 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提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
2011/02/08 PHP
纯PHP生成的一个树叶图片画图例子
2014/04/16 PHP
yii2 在控制器中验证请求参数的使用方法
2019/06/19 PHP
找到了一篇jQuery与Prototype并存的冲突的解决方法
2007/08/29 Javascript
网页开发中的容易忽略的问题 javascript HTML中的table
2009/04/15 Javascript
Node.js实战 建立简单的Web服务器
2012/03/08 Javascript
javascript 在firebug调试时用console.log的方法
2012/05/10 Javascript
jquery插件制作 图片走廊 gallery
2012/08/17 Javascript
div模拟滚动条效果示例代码
2013/10/16 Javascript
js键盘上下左右键怎么触发function(实例讲解)
2013/12/14 Javascript
JavaScript通过字符串调用函数的实现方法
2015/03/18 Javascript
JS实现的简单鼠标跟随DiV层效果完整实例
2015/10/31 Javascript
纯js实现手风琴效果代码
2020/04/17 Javascript
JavaScript中创建对象的7种模式详解
2017/02/21 Javascript
Angular JS 生成动态二维码的方法
2017/02/23 Javascript
js轮播图无缝滚动效果
2017/06/17 Javascript
vue-cli项目中怎么使用mock数据
2017/09/27 Javascript
js实现单张图片平移切换效果
2017/10/11 Javascript
Vue底层实现原理总结
2018/02/17 Javascript
JavaScript实现打字游戏
2021/02/19 Javascript
python 换位密码算法的实例详解
2017/07/19 Python
python装饰器深入学习
2018/04/06 Python
Python散点图与折线图绘制过程解析
2019/11/30 Python
新奇的小玩意:IWOOT
2016/07/21 全球购物
澳大利亚首个在线预订旅游网站:Wotif
2017/07/19 全球购物
免税水晶:Duty Free Crystal
2019/05/13 全球购物
大学应届毕业生个人求职信
2013/09/23 职场文书
初中生学习生活的自我评价
2013/11/20 职场文书
情侣吵架检讨书
2014/02/05 职场文书
期中考试后的反思
2014/02/08 职场文书
竞争与合作演讲稿
2014/05/12 职场文书
办公室领导干部作风整顿个人整改措施
2014/09/17 职场文书
工作违纪检讨书范文
2015/01/26 职场文书
考试作弊检讨书
2015/01/27 职场文书
确保工程质量承诺书
2015/04/29 职场文书
python四个坐标点对图片区域最小外接矩形进行裁剪
2021/06/04 Python