ホームページ > 記事 > ウェブフロントエンド > ショッピングカートプログラムの完全版(JavaScriptコード)
[javascript]
/***********************************ショッピングカートカテゴリー************** **** ************************/
var product=function(productArr){/*商品类基类productArr=>array;productArr['ID'],productArr['name'],productArr ['pic'],=productArr['lvs'],productArr['width'],productArr['thickness'],productArr['length'],productArr['open'],productArr['capacity']*/
var _ID=productArr['ID'],_name=productArr['name'],_pic=productArr['pic'],_price=productArr['price'],_weight=productArr['weight'],_originalPrice=productArr ['オリジナル価格'],_this=this;
this.num=productArr['num'];
this.getName=function(){
return _name;
}
this.getID=function(){
return _ID;
}
this.getPrice=function(){
return _price;
}
this.getWeight=function(){
return _weight;
}
this.getPic=function(){
return _pic;
}
this.getOriginalprice=function(){
return _originalPrice;
}
this.setNum=function(newNum){
_this.num=newNum;
}
this.getTotal=function(){
var total=_this.num*_this.getPrice();
合計を返します。
}
}}
var makeproductobj = function(gid、pid、num){//制造product对象、返回制造的gid =>数据组id、pid => *******製造コード*********/
var pData=[];
(function(gID,pID){
$.ajax({
url:'/module/data/default.php?action=dataDetail&groupID='+gID+'&ID='+pID+'&r='+newD食べた()、
type:'post',
dataType:'xml',
async:false,
/**工場出荷時の方法*** /
success:function(dataXML){
pData.price=$(dataXML).children('root ').children('extend19').text();
pData.originalPrice=$(dataXML).children('root').children('extend9').text();
pData.weight=$(dataXML).children('root').children('extend21').text();
pData.name=$(dataXML).children('root').children('name').text();
pData.pic=$(dataXML).children('root').children('extend17').text();
}
});
})(gID,pID);
新しい製品を返します({
num:num,
name:pData.name,
ID:pID,
price:pData.価格,
pic:pData.pic,
weight:pData.weight,
originalPrice:pData.originalPrice ,
});
}
var cartCookie=$.cookies.get('productItem');//cookieの全局变量=>'商品ID|数量,商品ID|数量'
//alert(mockCookie);
var productCollection=function(){//商品搜集类
var products=[];
var hasOne=function(productObj){
var isOne=0;
for(var i=0;i
isOne=1;
休憩。
}
}
戻り値は One;
}
var initProduct
/********初期製品配列コード*************/
//alert(mockCookie);
if(cartCookie){
initProduct=cartCookie.split(',');
for(var i=0;i
var _proObj=new makeProductObj(4,parseInt(_productTemp[0]),parseInt(_productTemp[1]));
if(hasOne(_proObj)!=1){
products.push(_proObj);
}
}
}
/*******初期製品配列コード***********/
this.addProduct=function(productObj){//追加商品
if(hasOne(productObj)!=1){
products.push(productObj);
}
}
this.delProduct=function(productObj){//删除商品
var _tempProducts=[];
for(var i=0;i
//コンソール。 log(製品[i]. getID());
_tempProducts.push(products[i]);
}
}
products=_tempProducts;
}//del
this.setNumByPid=function(pID,newNum){//设置商品数
for(var k=0;k
product[k].setNum(newNum);
休憩。
}
}
}
this.getProductById=function(pID){//pID ,获得商品对象
for(var j = 0; j< length; j ++){//すべての商品の合計価格を取得します。 ; lutss.length {getneedmoneyショッピングクラス、delegate ofbers var _nowcollection = '; );
}
if(!_productCollection) use ‐ '最初にコレクション オブジェクトを指定してください!' ;i++){
_this.temp[i]=[];
This.delProduct=function(pID){//単一の製品 pID->製品番号の ID を削除します。
var needProduct=_nowCollection.getProductById(pID);
製品) ; アイテム数、pID-> 製品 ID
pID-> 製品 ID
var productObj =_nowCollection.getProductById(pID);
return productObj.num; var _money=_nowCollection.getNeedMoney(); out out =function( pID){//1 つの商品の合計金額を取得します
throw new Error('そのような商品はありません');
var _totalMoney=_needProduct.getTotal();
新規を投げるError('エラー、このメソッドはサブクラス'); this.bindEvent=function(){//バインド イベント関数
throw new Error('エラー、このメソッドはサブクラスで実装する必要があります'); _this.renderCart ();
_this.bindEvent(); コレクション;
//alert(' '); オブジェクト'); #&*/
;this.getNewCollection().getProducts().length;i++){
var _productEach=this.getNewCollection().getProducts()[i]; _content+='