news 2026/7/26 17:20:39

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
jQuery EasyUI 拖放 - 创建拖放的购物车

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

使用jQuery EasyUIdraggabledroppable插件,可以轻松实现一个交互式的拖放购物车应用。用户可以将商品图片拖动到购物车区域,系统自动添加商品、更新数量(重复拖动时增加数量)和总价。

这个示例模拟一个简单的购物页面:左侧显示商品列表,右侧是购物车(使用datagrid显示购物篮内容,并实时计算总价)。

官方教程参考:https://www.jeasyui.com/tutorial/dd/dnd2.php
在线 Demo:https://www.jeasyui.com/tutorial/dd/dnd2_demo.html

步骤 1: 引入 EasyUI 资源
<linkrel="stylesheet"type="text/css"href="https://www.jeasyui.com/easyui/themes/default/easyui.css"><linkrel="stylesheet"type="text/css"href="https://www.jeasyui.com/easyui/themes/icon.css"><scripttype="text/javascript"src="https://code.jquery.com/jquery-1.12.4.min.js"></script><scripttype="text/javascript"src="https://www.jeasyui.com/easyui/jquery.easyui.min.js"></script>
步骤 2: 创建 HTML 结构

左侧商品区(多个可拖动 div),右侧购物车区(包含 datagrid 和总价显示)。

<divstyle="margin:20px 0;"></div><divclass="easyui-panel"style="width:700px;padding:10px;"><divstyle="float:left;width:400px;"><divclass="item"><imgsrc="https://www.jeasyui.com/tutorial/dd/images/balloon.jpg"style="width:100px;height:100px;"><br>Balloon<br>Price:$25</div><divclass="item"><imgsrc="https://www.jeasyui.com/tutorial/dd/images/feeling.jpg"style="width:100px;height:100px;"><br>Feeling<br>Price:$25</div><divclass="item"><imgsrc="https://www.jeasyui.com/tutorial/dd/images/elephant.jpg"style="width:100px;height:100px;"><br>Elephant<br>Price:$25</div><divclass="item"><imgsrc="https://www.jeasyui.com/tutorial/dd/images/stamps.jpg"style="width:100px;height:100px;"><br>Stamps<br>Price:$25</div><divclass="item"><imgsrc="https://www.jeasyui.com/tutorial/dd/images/monogram.jpg"style="width:100px;height:100px;"><br>Monogram<br>Price:$25</div></div><divclass="cart"style="float:right;width:280px;"><h1>Shopping Cart</h1><divstyle="background:#fff"><tableid="cartcontent"class="easyui-datagrid"fitColumns="true"style="width:280px;height:auto;"><thead><tr><thfield="name"width="140">Name</th><thfield="quantity"width="60"align="right">Quantity</th><thfield="price"width="60"align="right">Price</th></tr></thead></table></div><pclass="total">Total: $0</p><h2>Drop here to add to cart</h2></div><divstyle="clear:both"></div></div><style>.item{width:120px;height:180px;float:left;margin:10px;text-align:center;cursor:pointer;border:1px solid #ccc;padding:10px;background:#fafafa;}.cart{border:2px dashed #aaa;padding:10px;height:400px;}</style>
步骤 3: JavaScript 实现拖放逻辑

核心:使商品可拖动(clone 代理),购物车可放置;放置时提取商品信息,更新 datagrid 和总价。

<scripttype="text/javascript">vardata={"total":0,"rows":[]};vartotalCost=0;$(function(){$('#cartcontent').datagrid({singleSelect:true});$('.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';}});$('.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){varname=$(source).find('img').next().text();// 商品名称varprice=parseFloat($(source).find('img').next().next().text().substr(7));// 提取价格addProduct(name,price);}});});functionaddProduct(name,price){functionadd(){for(vari=0;i<data.total;i++){varrow=data.rows[i];if(row.name==name){row.quantity+=1;row.price+=price;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);}</script>
关键说明
  • 拖动效果:使用proxy:'clone',拖动时显示克隆代理,原商品不动。
  • 视觉反馈:拖入/拖出购物车时改变光标。
  • 添加逻辑:如果同名商品已存在,增加数量和价格;否则新增一行。
  • 实时更新:使用 datagrid 的loadData刷新购物车,总价单独计算并显示。
  • 优势:用户体验直观,支持重复添加商品自动累加。
扩展建议
  • 添加“移除”按钮:在 datagrid 中添加操作列,支持删除行并扣减总价。
  • 支持本地存储:使用 localStorage 保存购物车数据。
  • 真实商品图片:替换示例图片为实际商品。

更多示例:

  • 官方购物车 Demo:https://www.jeasyui.com/tutorial/dd/dnd2_demo.html
  • 课程表拖放:https://www.jeasyui.com/tutorial/dd/dnd3.php

如果需要添加删除功能、完整源码下载、或结合后端持久化,请提供更多细节!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/23 14:36:17

9、量子计算在供应链实时路线优化中的应用

量子计算在供应链实时路线优化中的应用 1. 引言 在全球商业的当代格局中,供应链管理是高效运营和无缝物流的支柱。然而,传统供应链方法在适应现代商业环境的复杂性和不确定性方面面临重大挑战,从波动的消费者需求到动态的市场条件和物流限制,组织在优化供应链运营、降低成…

作者头像 李华
网站建设 2026/7/26 7:01:39

【JVS更新日志】物联网、低代码、项目管理12.17更新说明!

项目介绍 JVS是企业级数字化服务构建的基础脚手架&#xff0c;主要解决企业信息化项目交付难、实施效率低、开发成本高的问题&#xff0c;采用微服务配置化的方式&#xff0c;提供了低代码数据分析物联网的核心能力产品&#xff0c;并构建了协同办公、企业常用的管理工具等&…

作者头像 李华
网站建设 2026/7/19 22:13:11

网络安全证书合集,看这一篇就够啦!

随着信息技术的飞速发展&#xff0c;网络安全问题日益凸显&#xff0c;网络安全行业也因此备受瞩目。在这一领域中&#xff0c;持有权威证书的专业人才备受欢迎。本文将为您介绍网络安全行业的热门证书&#xff0c;帮助您更好地了解这一行业&#xff0c;并为自己的职业发展提供…

作者头像 李华
网站建设 2026/7/19 7:33:13

打卡信奥刷题(2549)用C++实现信奥 P2113 看球泡妹子

P2113 看球泡妹子 题目背景 2014 年巴西世界杯开幕了&#xff0c;现在满城皆是世界杯&#xff0c;商家们利用它大赚一笔&#xff0c;小明和小红也借此机会增进感情。 题目描述 本届世界杯共有 nnn 支球队&#xff0c;mmm 场比赛。男球迷小明喜欢看比赛&#xff0c;女球迷小红喜…

作者头像 李华
网站建设 2026/7/23 20:49:38

四天学会一本书的公司靠谱吗

四天学会一本书的公司靠谱吗&#xff1f;深度解析速成教育的真相与选择在知识焦虑与效率至上的时代&#xff0c;“四天学会一本书”这样的宣传语无疑极具诱惑力。各类培训机构&#xff0c;尤其是以技能提升和资格认证为导向的公司&#xff0c;纷纷推出此类短期速成课程&#xf…

作者头像 李华
网站建设 2026/7/24 3:01:59

低成本高质量:为何越来越多团队选择EmotiVoice?

低成本高质量&#xff1a;为何越来越多团队选择EmotiVoice&#xff1f; 在短视频、播客和互动游戏内容爆发的今天&#xff0c;个性化语音不再只是“锦上添花”&#xff0c;而是用户体验的核心组成部分。然而&#xff0c;要实现自然流畅、富有情感、还能定制音色的语音合成&…

作者头像 李华