Welcome 微信登录

首页 / 脚本样式 / JavaScript / jquery.cookie实现的客户端购物车操作实例

本文实例讲述了jquery.cookie实现的客户端购物车操作。分享给大家供大家参考,具体如下:
//购物车var Cart = function () {this.Count = 0;this.Total = 0;this.Items = new Array();};//购物车集合对象var CartItem = function () {this.Id = 0;this.Name = "";this.Count = 0;this.Price = 0;}; //购物车操作var CartHelper = function () {this.cookieName = "yxhCart";this.Clear = function () {var cart = new Cart();this.Save(cart);return cart;};//向购物车添加this.Add = function (id, name, count, price) {var cart = this.Read();var index = this.Find(id);//如果ID已存在,覆盖数量if (index > -1) {cart.Total -= (((cart.Items[index].Count * 100) * (cart.Items[index].Price * 100)) / 10000);cart.Items[index].Count = count;cart.Total += (((cart.Items[index].Count * 100) * (cart.Items[index].Price * 100)) / 10000);} else {var item = new CartItem();item.Id = id;item.Name = name;item.Count = count;item.Price = price;cart.Items.push(item);cart.Count++;cart.Total += (((cart.Items[index].Count * 100) * (cart.Items[index].Price * 100)) / 10000);}this.Save(cart);return cart;};//改变数量this.Change = function (id, count) {var cart = this.Read();var index = this.Find(id);cart.Items[index].Count = count;this.Save(cart);return cart;};//移出购物车this.Del = function (id) {var cart = this.Read();var index = this.Find(id);if (index > -1) {var item = cart.Items[index];cart.Count--;cart.Total = cart.Total - (((item.Count * 100) * (item.Price * 100)) / 10000);cart.Items.splice(index, 1);this.Save(cart);}return cart;};//根据ID查找this.Find = function (id) {var cart = this.Read();var index = -1;for (var i = 0; i < cart.Items.length; i++) {if (cart.Items[i].Id == id) {index = i;}}return index;};//COOKIE操作this.Save = function (cart) {var source = "";for (var i = 0; i < cart.Items.length; i++) {if (source != "") { source += "|$|"; }source += this.ItemToString(cart.Items[i]);}$.cookie(this.cookieName, source);};this.Read = function () {//读取COOKIE中的集合var source = $.cookie(this.cookieName);var cart = new Cart();if (source == null || source == "") {return cart;}var arr = source.split("|$|");cart.Count = arr.length;for (var i = 0; i < arr.length; i++) {var item = this.ItemToObject(arr[i]);cart.Items.push(item);cart.Total += (((item.Count * 100) * (item.Price * 100)) / 10000);}return cart;};this.ItemToString = function (item) {return item.Id + "||" + escape(item.Name) + "||" + item.Count + "||" + item.Price;};this.ItemToObject = function (str) {var arr = str.split("||");var item = new CartItem();item.Id = arr[0];item.Name = unescape(arr[1]);item.Count = arr[2];item.Price = arr[3];return item;};};
希望本文所述对大家jQuery程序设计有所帮助。