首页 > 编程 > JavaScript > 正文

jquery.cookie实现的客户端购物车操作实例

2019-11-20 10:56:31
字体:
来源:转载
供稿:网友

本文实例讲述了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程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表