轻松学习jQuery插件EasyUI EasyUI实现拖放商品放置购物车


Posted in Javascript onNovember 30, 2015

在本文中,我们将向您展示如何创建一个启用用户拖动和放置用户想买的商品的购物车页面,购物篮中的物品和价格将更新,分享给大家,具体内容如下:

效果图:

轻松学习jQuery插件EasyUI EasyUI实现拖放商品放置购物车

具体代码如下

显示页面上的商品:

<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' 函数来更新购物篮。

EasyUI实现拖放商品放置购物车的功能就介绍到这,有了本文为大家提供的实例,相信大家应该很轻松的就可以实现拖放商品放置购物车的模块设计,谢谢大家的阅读。

Javascript 相关文章推荐
用javascript实现的图片马赛克后显示并切换加文字功能
Apr 21 Javascript
JavaScript面向对象之Prototypes和继承
Jul 12 Javascript
js隐藏与显示回到顶部按钮及window.onscroll事件应用
Jan 25 Javascript
原生JS绑定滑轮滚动事件兼容常见浏览器
Jun 30 Javascript
JQuery实现动态表格点击按钮表格增加一行
Aug 24 Javascript
Jquery的基本对象转换和文档加载用法实例
Feb 25 Javascript
JavaScript使表单中的内容显示在屏幕上的方法
Jun 29 Javascript
javascript实现控制的多级下拉菜单
Jul 05 Javascript
Node.js+jade抓取博客所有文章生成静态html文件的实例
Sep 19 Javascript
jQuery子选择器与可见性选择器实例分析
Jun 28 jQuery
使用uni-app开发微信小程序的实现
Dec 13 Javascript
JS localStorage存储对象,sessionStorage存储数组对象操作示例
Feb 15 Javascript
浅析node连接数据库(express+mysql)
Nov 30 #Javascript
javascript编程异常处理实例小结
Nov 30 #Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖动基本操作
Nov 30 #Javascript
轻松学习jQuery插件EasyUI EasyUI创建CRUD应用
Nov 30 #Javascript
javascript for-in有序遍历json数据并探讨各个浏览器差异
Nov 30 #Javascript
基于javascript如何传递特殊字符
Nov 30 #Javascript
基于js实现微信发送好友如何分享到朋友圈、微博
Nov 30 #Javascript
You might like
PHP下编码转换函数mb_convert_encoding与iconv的使用说明
2009/12/16 PHP
php排序算法(冒泡排序,快速排序)
2012/10/09 PHP
php简单操作mysql数据库的类
2015/04/16 PHP
YII2框架中添加自定义模块的方法实例分析
2020/03/18 PHP
jquery中交替点击事件toggle方法的使用示例
2013/12/08 Javascript
javascript的事件触发器介绍的实现
2014/06/05 Javascript
JS获取当前网页大小以及屏幕分辨率等
2014/09/05 Javascript
node.js中的url.resolve方法使用说明
2014/12/10 Javascript
jQuery插件开发的五种形态小结
2015/03/04 Javascript
详解AngularJS Filter(过滤器)用法
2015/12/28 Javascript
基于JavaScript实现购物车功能
2017/02/07 Javascript
vue组件如何被其他项目引用
2017/04/13 Javascript
一篇看懂vuejs的状态管理神器 vuex状态管理模式
2017/04/20 Javascript
AngularJS实现的select二级联动下拉菜单功能示例
2017/10/25 Javascript
JavaScript实现新年倒计时效果
2018/11/17 Javascript
jQuery实现的模仿雨滴下落动画效果
2018/12/11 jQuery
JQuery样式操作、click事件以及索引值-选项卡应用示例
2019/05/14 jQuery
node.js使用yargs处理命令行参数操作示例
2020/02/11 Javascript
微信小程序实现聊天室
2020/08/21 Javascript
使用python分析git log日志示例
2014/02/27 Python
windows10环境下用anaconda和VScode配置的图文教程
2020/03/30 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
2020/05/10 Python
CSS3 Media Queries(响应式布局可以让你定制不同的分辨率和设备)
2013/06/06 HTML / CSS
欧铁通票官方在线销售网站:Eurail.com
2017/10/14 全球购物
Sneaker Studio法国:购买运动鞋
2018/06/08 全球购物
介绍下static、final、abstract区别
2015/01/30 面试题
工程师岗位职责
2013/11/08 职场文书
十一酒店活动方案
2014/02/20 职场文书
《陈涉世家》教学反思
2014/04/12 职场文书
优秀家长自荐材料
2014/08/26 职场文书
电影红河谷观后感
2015/06/11 职场文书
父亲去世追悼词
2015/06/23 职场文书
节水宣传标语口号
2015/12/26 职场文书
Python使用Kubernetes API访问集群
2021/05/30 Python
GO中sync包自由控制并发示例详解
2022/08/05 Golang
html解决浏览器记住密码输入框的问题
2023/05/07 HTML / CSS