jquery.cookie实现的客户端购物车操作实例
本文实例讲述了jquery.cookie实现的客户端购物车操作。分享给大家供大家参考,具体如下:
//购物车
varCart=function(){
this.Count=0;
this.Total=0;
this.Items=newArray();
};
//购物车集合对象
varCartItem=function(){
this.Id=0;
this.Name="";
this.Count=0;
this.Price=0;
};
//购物车操作
varCartHelper=function(){
this.cookieName="yxhCart";
this.Clear=function(){
varcart=newCart();
this.Save(cart);
returncart;
};
//向购物车添加
this.Add=function(id,name,count,price){
varcart=this.Read();
varindex=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{
varitem=newCartItem();
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);
returncart;
};
//改变数量
this.Change=function(id,count){
varcart=this.Read();
varindex=this.Find(id);
cart.Items[index].Count=count;
this.Save(cart);
returncart;
};
//移出购物车
this.Del=function(id){
varcart=this.Read();
varindex=this.Find(id);
if(index>-1){
varitem=cart.Items[index];
cart.Count--;
cart.Total=cart.Total-(((item.Count*100)*(item.Price*100))/10000);
cart.Items.splice(index,1);
this.Save(cart);
}
returncart;
};
//根据ID查找
this.Find=function(id){
varcart=this.Read();
varindex=-1;
for(vari=0;i<cart.Items.length;i++){
if(cart.Items[i].Id==id){
index=i;
}
}
returnindex;
};
//COOKIE操作
this.Save=function(cart){
varsource="";
for(vari=0;i<cart.Items.length;i++){
if(source!=""){source+="|$|";}
source+=this.ItemToString(cart.Items[i]);
}
$.cookie(this.cookieName,source);
};
this.Read=function(){
//读取COOKIE中的集合
varsource=$.cookie(this.cookieName);
varcart=newCart();
if(source==null||source==""){
returncart;
}
vararr=source.split("|$|");
cart.Count=arr.length;
for(vari=0;i<arr.length;i++){
varitem=this.ItemToObject(arr[i]);
cart.Items.push(item);
cart.Total+=(((item.Count*100)*(item.Price*100))/10000);
}
returncart;
};
this.ItemToString=function(item){
returnitem.Id+"||"+escape(item.Name)+"||"+item.Count+"||"+item.Price;
};
this.ItemToObject=function(str){
vararr=str.split('||');
varitem=newCartItem();
item.Id=arr[0];
item.Name=unescape(arr[1]);
item.Count=arr[2];
item.Price=arr[3];
returnitem;
};
};
希望本文所述对大家jQuery程序设计有所帮助。