jquery购物车程序(js文件)

购物车js
//订单

var webOrder={};

webOrder.getBasePath = function(){  
    var result = "" 
    try{a = b}catch(e){  
        if(e.fileName){//firefox  
            result = e.fileName;  
        }else if(e.sourceURL){//safari  
            result =  e.sourceURL;  
        }else if(e.stacktrace){//opera  
            var m = e.stacktrace.match(/\(\) in\s+(.*?\:\/\/\S+)/m);  
            if (m && m[1])  
                result =  m[1]  
        }  
    }  
    if(!result){//IE与chrome  
        var scripts = document.getElementsByTagName("script");  
        var  reg = /order\/inculde\.js(\W|$)/i  
        for(var i = 0 , n = scripts.length ; i <n ; i++){  
            var src = !!document.querySelector ? scripts[i].src   
                          :scripts[i].getAttribute("src",4);  
            if(src && reg.test(src)){  
                result = src  
                break;  
            }  
        }  
    }  
    return result.substr( 0, result.lastIndexOf('/') + 1 );
}

//初始化 加载样式
webOrder.initialization= function(){
    if($('[href='+webOrder.getBasePath()+'userPannel.css'+']').size()==0)$.include(webOrder.getBasePath()+'userPannel.css');//购物车弹框样式
}

//加入购物车
webOrder.toCart= function(IDBox,goodsIDBox,nameBox,imgBox,priceBox,detailBox,numBox){
    if(!IDBox)return;
    webOrder.initialization();
    
    var ID=0;
    if(typeof(IDBox)=='object'){ID=IDBox.text();}
    else if(typeof(IDBox)=='string'){if($(IDBox).size()>0){ID=$(IDBox).text();}else{ID=IDBox;}}
    else if(typeof(IDBox)=='number'){ID=IDBox;}
    if(!ID)return;
    
    var goodsID=0;
    if(typeof(goodsIDBox)=='object'){if(goodsIDBox.size()>0)goodsID=goodsIDBox.text();}
    else if(typeof(goodsIDBox)=='string'){if($(goodsIDBox).size()>0){goodsID=$(goodsIDBox).text();}else{goodsID=goodsIDBox;}}
    else if(typeof(goodsIDBox)=='number'){goodsID=goodsIDBox;}
        
    var name='';
    if(typeof(nameBox)=='object'){if(nameBox.size()>0)name=nameBox.text();}
    else if(typeof(nameBox)=='string'){if($(nameBox).size()>0){name=$(nameBox).text();}else{name=nameBox;}}
    else if(typeof(nameBox)=='number'){name=nameBox;}
    
    var img=webOrder.getBasePath()+'images/img.gif';
    if(typeof(imgBox)=='object'){
        if(imgBox.size()>0){
            if(imgBox.find('img').size()>0)img=imgBox.find('img').eq(0).attr('src');  
                else img=imgBox.text();
        }
    }else if(typeof(imgObj)=='string'){
        if($(imgObj).size()>0){
            if(imgBox.find('img').size()>0)img=imgBox.find('img').eq(0).attr('src');  
                else img=imgBox.text();
        }else{img=imgObj;}
    }
    
    var price=0;
    if(typeof(priceBox)=='object'){
        if(priceBox.size()>0)if(priceBox.val()){price=priceBox.val();} else {price=priceBox.text();}
        price=price.replace(' ','');price=price.replace('$','');price=price.replace('¥','');
    }else if(typeof(priceBox)=='string'){
        if($(priceBox).size()>0){if($(priceBox).val()){price=$(priceBox).val()}else{price=$(priceBox).text();}}else{price=priceBox;}
        price=price.replace(' ','');price=price.replace('$','');price=price.replace('¥','');
    }else if(typeof(priceBox)=='number'){price=priceBox;}
        
    var detail='';
    if(typeof(detailBox)=='object'){if(detailBox.size()>0)if(detailBox.val()){detail=detailBox.val();} else {detail=detailBox.text();}}
    else if(typeof(detailBox)=='string'){
        if($(detailBox).size()>0){if($(detailBox).val()){detail=$(detailBox).val()}else{detail=$(detailBox).text();}}
        else{detail=detailBox;}}
    else if(typeof(detailBox)=='number'){detail=detailBox;}
    
    var num=1;
    if(typeof(numBox)=='object'){if(numBox.size()>0)if(numBox.val()){num=numBox.val()} else {num=numBox.text();}}
    else if(typeof(numBox)=='string'){
        if($(numBox).size()>0){if($(numBox).val()){num=$(numBox).val()}else{num=$(numBox).text();}}
        else{num=numBox;}}
    else if(typeof(numBox)=='number'){num=numBox;}
    if(num<=0)num=1;
        
    if(!$.getCookie('myShoppingCart')){
        $.setCookie('myShoppingCart',ID+'#&'+goodsID+'#&'+name+'#&'+img+'#&'+price+'#&'+detail+'#&'+num);
    }else{
        var temp=$.getCookie('myShoppingCart').split('##');
		var has=false;
		for(var i=0;i<temp.length;i++){
			var temp1=temp[i].split('#&');
			if (temp1[0] == ID) {
				temp[i] = ID+'#&'+goodsID+'#&'+name+'#&'+img+'#&'+price+'#&'+detail+'#&'+num;
				has=true;
			}
		}
		if (has) {
			$.setCookie('myShoppingCart',temp.join('##'));
		}
		else {
			$.setCookie('myShoppingCart', $.getCookie('myShoppingCart') + '##' + ID+'#&'+goodsID+'#&'+name+'#&'+img+'#&'+price+'#&'+detail+'#&'+num);
		}
    }
    //alert($.getCookie('myShoppingCart'))
    webOrder.cartDetail();
}

//购物车
webOrder.cartDetail = function(){
	var myShoppingCart = $.getCookie('myShoppingCart');
    if(!myShoppingCart)return;
    webOrder.initialization();
    var pannel=$.openMyPannel(600);//弹框
    pannel.load(webOrder.getBasePath()+'userPannel.html #orderPannel',function(){
        $('#orderPannel .pannelCloseButton').click(function(){$.closeMyPannel(pannel);})
        $('#orderPannel .orderInfoBox').html('');
        $('#checkCodeImgBox').html('<img src="'+webOrder.getBasePath()+'../base/checkUpCode/?'+new Date()+'" />')
        .click(function(){$(this).children('img').attr('src',webOrder.getBasePath()+'../base/checkUpCode/?'+new Date())});
        $('#postageBox').hide();$('#payBox').hide();
        
        var myShoppingCart = $.getCookie('myShoppingCart');
        myShoppingCart=myShoppingCart.split('##');
        for (var i=0; i<myShoppingCart.length;i++){//宝贝列表
            var pro=myShoppingCart[i].split('#&');
            var ID=pro[0];
            var goodsID=pro[1];
            var name=pro[2];
            var img=pro[3];
            var price=pro[4];
            var detail=pro[5];
            var num=pro[6];
            var proList=$('<div id=shoppingCartPro'+ID+' class="proListBox"><div class="left"></div><div class="right"></div></div>');
            
            if(!img)$('<div class="imgBox"><img src="/module/order/images/img.gif" /></div>').appendTo(proList.find('.left'));
                else $('<div class="imgBox"><img src="'+img+'" /></div>').appendTo(proList.find('.left'));
            $('<div class="proName">'+name+'</div>').appendTo(proList.find('.right'));
            $('<div class="proPrice"></div>').appendTo(proList.find('.right')).append(function(){return '单价:¥'+price});
            $('<div class="proDetail">'+detail+'</div>').appendTo(proList.find('.right'));
            //$('<div class="proSelect">'+detail+'</div>').appendTo(proList.find('.right'));
            var option=$('<div class="row"></div>').appendTo(proList.find('.right'));
            $('<div class="num"></div>').appendTo(option).append(function(){return num});
            $('<div class="addButton"></div>').appendTo(option).click(function(){webOrder.add($(this).data('ID'));}).data('ID',ID);
            $('<div class="subtractButton"></div>').appendTo(option).click(function(){webOrder.subtract($(this).data('ID'));}).data('ID',ID);
            $('<div class="deleteButton">[ 删除 ]</div>').appendTo(option)
            .click(function(){webOrder.del($(this).data('ID'))}).data('ID',ID);
            $('<div class="price"></div>').appendTo(option).append(function(){return '¥'+(price*num).toFixed(2);});
            
            proList.appendTo($('#orderPannel .orderInfoBox'));
        }
        webOrder.total();
        $.pannelBgResize(pannel);
        
        $('#orderContentBox .pannelSubmitButton').click(function(){
            
            $('#orderContentBox').hide();
            $('#postageBox').show();
        })
        $('#orderContentBox .pannelSubmitButton').click(function(){
            $('#orderContentBox').hide();
            $('#postageBox').show();
        })
        
        $('#postageBox .pannelSubmitButton').click(function(){
            $('#postageBox').hide();
            $('#payBox').show();
        })
        
        $('#payBox .pannelSubmitButton').click(function(){
            $.post(webOrder.getBasePath()+'default.php?action=orderAdd&orderDetail='+encodeURIComponent($.getCookie('myShoppingCart')),$('#orderForm').serialize(),function(data,textStatus){
                if($(data).find('succeed').text()=='true'){return;}
                if($(data).find('succeed').text()=='false'){return;}
                alert('error !');
            })
        })
                
        $.get(webOrder.getBasePath()+'address.xml',{},function(data,textStatus){
            $('#orderPannel').find('[name="shengfeng"]').html('<option value="">请选择省份</option>');
            $('#orderPannel').find('[name="city"]').html('<option value="">请选择城市</option>');
            var areaData=data;
            $(data).find('root').children().each(function(){
                var val=$(this).find('name').text();
                $('<option value="'+val+'">'+val+'</option>').appendTo($('#orderPannel').find('[name="shengfeng"]'))
            });
            $('#orderPannel').find('[name="shengfeng"]').change(function(){
                $('#orderPannel').find('[name="city"]').html('<option value="">请选择城市</option>');
                var self=$('#orderPannel').find('[name="shengfeng"]');
                $(data).find('root').children().each(function(){
                    if($(this).find('name').text()==self.val()){
                        $(this).find('sub').children().each(function(){
                            var val=$(this).text();
                            $('<option value="'+val+'">'+val+'</option>').appendTo($('#orderPannel').find('[name="city"]'))
                        })
                    }
                })
            })
            
            $.get(webOrder.getBasePath()+'../member/default.php?action=checkLogin',{},function(data,textStatus){
                try{
                if($(data).find('succeed').text()=='true'){
                    $.get(webOrder.getBasePath()+'../member/default.php?action=userDetail',{},function(data,textStatus){
                        var useremail=$(data).find('useremail').text();
                        var name=$(data).find('compellation').text();
                        var phone=$(data).find('userphone').text();
                        var shengfeng=$(data).find('shengfeng').text();
                        var city=$(data).find('city').text();
                        var detailaddress=$(data).find('detailaddress').text();
                        var postcode=$(data).find('postcode').text();
                    
                        $('#orderPannel [name="userEmail"]').val(useremail);
                        $('#orderPannel [name="compellation"]').val(name);
                        $('#orderPannel [name="userPhone"]').val(phone);
                        $('#orderPannel [name="detailAddress"]').val(detailaddress);
                        $('#orderPannel [name="postCode"]').val(postcode);
                        $('#orderPannel [name="shengfeng"]').val(shengfeng);
                        $('#orderPannel [name="city"]').val(city);
                        
                        $('#orderPannel').find('[name="city"]').html('<option value="">请选择城市</option>');
                        $(areaData).find('root').children().each(function(){
                            if($(this).find('name').text()==shengfeng){
                                $(this).find('sub').children().each(function(){
                                    var val=$(this).text();
                                    $('<option value="'+val+'">'+val+'</option>').appendTo($('#orderPannel').find('[name="city"]'))
                                    .attr('selected',function(){if(val==city)return true;})
                                })
                            }
                        })
                    })
                }
                }catch(e){}
            })
            
        })
    })
}

webOrder.add=function(ID){//数量加
     if(!$.getCookie('myShoppingCart'))return;
     var myShoppingCart=$.getCookie('myShoppingCart');
     myShoppingCart=myShoppingCart.split('##');
     for (var i=0; i<myShoppingCart.length;i++){
        var pro=myShoppingCart[i].split('#&');
        if(ID==pro[0]){
            pro[6]++;
            myShoppingCart[i]=pro.join('#&');
            $('#shoppingCartPro'+ID).find('.num').text(pro[6]);
            $('#shoppingCartPro'+ID).find('.price').text('¥'+(pro[4]*pro[6]).toFixed(2));
        }
     }
     $.setCookie('myShoppingCart',myShoppingCart.join('##'));
     webOrder.total();
}

webOrder.subtract=function(ID){//数量减
    if(!$.getCookie('myShoppingCart'))return;
     var myShoppingCart=$.getCookie('myShoppingCart');
     myShoppingCart=myShoppingCart.split('##');
     for (var i=0; i<myShoppingCart.length;i++){
        var pro=myShoppingCart[i].split('#&');
        if(ID==pro[0]){
            pro[6]--;
            if(pro[6]<1)pro[6]=1;
            myShoppingCart[i]=pro.join('#&');
            $('#shoppingCartPro'+ID).find('.num').text(pro[6]);
            $('#shoppingCartPro'+ID).find('.price').text('¥'+(pro[4]*pro[6]).toFixed(2));
        }
     }
     $.setCookie('myShoppingCart',myShoppingCart.join('##'));
     webOrder.total();
}

webOrder.del=function(ID){//删除
    if(!$.getCookie('myShoppingCart'))return;
     var myShoppingCart=$.getCookie('myShoppingCart');
     myShoppingCart=myShoppingCart.split('##');
     for (var i=0; i<myShoppingCart.length;i++){
        var pro=myShoppingCart[i].split('#&');
        if(ID==pro[0]){
            myShoppingCart.splice(i,1);
        }
     }
     $.setCookie('myShoppingCart',myShoppingCart.join('##'));
     $('#shoppingCartPro'+ID).remove();
     //webOrder.cartDetail();
     webOrder.total();
     
}

webOrder.total=function(){合计
    if(!$.getCookie('myShoppingCart')){
        $('#orderPannel .totalBox').text('合计:¥0');
        return;   
    }
    var myShoppingCart=$.getCookie('myShoppingCart');
    var total=0;
    myShoppingCart=myShoppingCart.split('##');
    for (var i=0; i<myShoppingCart.length;i++){
        var pro=myShoppingCart[i].split('#&');
        total+=pro[4]*pro[6];
    }
    $('#orderPannel .totalBox').text('合计:¥'+total);
}

jquery插件

$.extend({
//    
//    //获取页面名称
    getPageName:function(){
	   var fname=window.location.href.match(/.+\/([^?]*)/)[1];
	   return fname.substring(0,fname.indexOf("."));
    },
    
    //获取页面参数
    getParameter:function(valueName){
        try{
            var str=document.location.href;
            var a=str.split("?");
            a=a[1].split("&");
            for(var i=0;i<a.length;i++){
                var b=a[i].split("=");
                if(b[0].toUpperCase()==valueName.toUpperCase())return b[1].replace('#','');
            }
            return "";
        }catch(e){
            return "";
        }
    }, 

    //返回 定长字符串 中文算一个 英文算半个
    getLengthStr : function (str,len){
        var i,sum;    
        sum=0;
        var str1='';
        for(i=0;i<str.length;i++){    
            if ((str.charCodeAt(i)>=0) && (str.charCodeAt(i)<=255)){
			sum=sum+1;
		}else{sum=sum+2;}
		if(sum>(len*2))break;
		str1+=str.charAt(i);
        }
        return str1;
    },
    // js css 动态导入
    includePath:'',
    include: function(file){
        var files = typeof(file)== "string"?[file]:file;
        for (var i = 0; i < files.length; i++){
            var name = files[i].replace(/^\s|\s$/g, "");
            var name=files[i];
            var att = name.split('.');
            var ext = att[att.length - 1].toLowerCase();
            if(ext=='js'){
                var fileref=document.createElement('script');//创建标签 
                fileref.setAttribute("type","text/javascript");//定义属性type的值为text/javascript 
                fileref.setAttribute("src", $.includePath + name);//文件的地址
                document.getElementsByTagName("head")[0].appendChild(fileref);
            }else if(ext=='css'){
                var fileref=document.createElement("link"); 
                fileref.setAttribute("rel", "stylesheet"); 
                fileref.setAttribute("type", "text/css");  
                fileref.setAttribute("href", $.includePath + name); 
                document.getElementsByTagName("head")[0].appendChild(fileref);
            }
        }
        
    },
    // 弹出面板
    openMyPannel:function (){
        var w=0;
        if (arguments[0])w=arguments[0];
	       else w=500;
        var t=0;
        if (arguments[1])t=arguments[1];
	       else t=$(window).scrollTop()+$(window).height()/4;
        var zindex=100;
        if (arguments[2])zindex=arguments[2];
        
        var jqueryObj=$('<div></div>');
        jqueryObj.appendTo($('Body'));
        jqueryObj.html('');
        jqueryObj.css({
		  'position': 'absolute','top': t+'px',
		  'left': Math.round(($(window).width() - w) / 2)+'px',
		  'z-index': zindex
	    })
        var bgObj=$('<div></div>');
        bgObj.appendTo($('Body'));
        if(arguments[2]){bgObj.css({
            'position': 'absolute','background': '#000',
            'opacity': '0.0','-moz-opacity': '0.0',
            '-khtml-opacity': '0.0','filter': 'alpha(opacity=0)',
            'width': '100%',
            'height': $(window).height()>$(document).height()?$(window).height():$(document).height()+'px',
            'top': '0','left':'0','z-index': zindex-1
        })}else{
            bgObj.css({
                'position': 'absolute','background': '#000',
                'opacity': '0.4','-moz-opacity': '0.4',
                '-khtml-opacity': '0.4','filter': 'alpha(opacity=40)',
                'width': '100%',
                'height': $(window).height()>$(document).height()?$(window).height():$(document).height()+'px',
                'top': '0','left':'0','z-index': zindex-1
            })    
        }
        
        jqueryObj.data('bg',bgObj);
        
        return jqueryObj;
        
    },
    closeMyPannel:function (jqueryObj){
        var bgObj=jqueryObj.data('bg');
        bgObj.remove();
        jqueryObj.remove();
        //if($('#myPannelBox').size()>0)$('#myPannelBox').remove();
        //if($('#myPannelBoxBg').size()>0)$('#myPannelBoxBg').remove();
    },
    pannelBgClose:function(jqueryObj){
        var bgObj=jqueryObj.data('bg');
        bgObj.click(function(){
            bgObj.remove();
            jqueryObj.remove();
        })
    },
    //重新设置 背景尺寸 在面板 尺寸改变后
    pannelBgResize:function(jqueryObj){
        var bgObj=jqueryObj.data('bg');
        bgObj.css({'height':$(window).height()>$(document).height()?$(window).height():$(document).height()+'px'})
    },
    /** 小 面板 打开
     * 面板背景为透明 点击面板背景 关闭面板 top left 为 按钮 位置 参数 2 3为 偏移
    *  参数1 为 传入 button 的 辨别 字符串
		参数2 selfClose 是否 点自己 关闭 
     */
    
    openLittlePannel:function (button,selfClose){
        if(!button)return;
        var offset = $(button).offset();
        
        var l=offset.left;
        if (arguments[1])l=offset.left+arguments[1];
        
        var t=offset.top;
        if (arguments[2])t=offset.top+arguments[2];
	       
        var zindex=100;
        if (arguments[3])zindex=arguments[3];
        
        var jqueryObj=$('<div></div>');
        jqueryObj.appendTo($('Body'));
        jqueryObj.html('');
        jqueryObj.css({
		  'position': 'absolute','top': t+'px',
		  'left': l+'px',
		  'z-index': zindex
	    })
        
        var bgObj=$('<div></div>');
        bgObj.appendTo($('Body'));
        bgObj.css({
            'position': 'absolute','background': '#000',
            'opacity': '0.0','-moz-opacity': '0.0',
            '-khtml-opacity': '0.0','filter': 'alpha(opacity=0)',
            'width': '100%',
            'height': $(window).height()>$(document).height()?$(window).height():$(document).height()+'px',
            'top': '0','left':'0','z-index': zindex-1
        })
        bgObj.click(function(){
            bgObj.remove(); jqueryObj.remove()   
        })
        if(selfClose){
			jqueryObj.click(function(){bgObj.remove(); jqueryObj.remove();})
		}
		
        return jqueryObj;
        
     },
    
    //cookie 操作
    setCookie:function(name,value){//两个参数,一个是cookie的名子,一个是值
        var Days = 30; //此 cookie 将被保存 30 天
        var exp  = new Date();    //new Date("December 31, 9998");
        exp.setTime(exp.getTime() + Days*24*60*60*1000);
        document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
    },
    getCookie:function (name){//取cookies函数        
        var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
        if(arr != null) return unescape(arr[2]); return null;
    },
    delCookie:function (name){//删除cookie
        var exp = new Date();
        exp.setTime(exp.getTime() - 1);
        var cval=$.getCookie(name);
        //if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString();
        if(cval!=null) document.cookie= name + "=;expires="+exp.toGMTString();
    }
})
             



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值