最近在做一个购物车效果,为了实现商品的浏览记录效果可是让我百般周折,避免以后忘记特写此随笔与大家共享,希望博友们看后有所收获。

第一步:在一个公用的js文件下getCookie(“liulan”),cookie名字可以随便起,然后在判断是否存在此cookie,不存在的话创建此cookie,存在的话将次cookie赋给window.liu(整个窗口唯一的变量)。代码如下:

var l = getCookie("liulan"); if(l){window.liu = l }else{setCookie("liulan",[ ],10);}

第二步:将第一步中的js文件引入到商品页,引入完后在商品页判断是否存在window.liu,如果存在window.liu(此时的liu是一个数组)判断liu的长度是否大于0,如果大于0就创建一个数组并且循环遍历liu,将liu的每一项添加到数组中且动态创建记录的商品显示到该加载的地方。代码如下:

if(window.liu){

var liu = window.liu;

if(liu.length>0){

var arrObj = [ ];

for(var j=liu.length-1; j>=0; j--){

var l = liu[ j ];

arrObj.push("<li id=' "+l.id+" '><img src='img/"+l.img+" '/><h4>¥"+l.price+"元/件</h4><span>"+l.title+"</span></li>");

}

$('ol').html(arrObj.join(""));//显示加载的时候以空字符分开

$('li','ol').click(function(){  });//给每个li设置点击事件

}

}

第三步:当浏览商品时给商品添加一个事件。先用getCookie得到浏览过商品的对象(点击后即浏览),判断此cookie和liu是否都存在,如果都存在遍历liu的每一项如果liu的一条数据中有一项的id和商品的id相同则不让此条cookie加到liu中,然后创建setCookie("liulian",liu),如果此cookie和liu不同时存在就setCookie("j"+obj.id,obj,10)。代码如下:

a.onclick=function(){

var o = getCookie("j"+obj.id);

if( o && liu){

var f = true;

$(liu).each(function(i,item){

if(item.id==o.id) f = false;

});

if ( f ){

if (liu.length >= 5) liu.splice(0,1);

liu.push(o);

}

setCookie("liulan",liu);

document.location.href = "show.html?id="+obj.id;

}else{

setCookie("j"+obj.id,obj,10);

document.location.href="show.html?id="+obj.id;

}

};

注:若代码有误欢迎大神多多指正。

最新文章

  1. 用C#从数据库动态生成AdminLTE菜单的一种方法
  2. 【转】Android性能优化之布局优化篇
  3. [java] JNLP文件安装
  4. Java:IO流之转换流
  5. Oracle 表的连接方式(2)-----HASH JOIN的基本机制3
  6. Android,iOS,浏览器打开手机QQ与指定用户聊天界面
  7. GCC交叉编译链命名
  8. Linq101-Grouping Operators
  9. phprpc 使用实例(同时有Java、Android和Delphi客户端的例子)
  10. Cocos2d-x Tiled地图编辑器(一)基本使用
  11. js循环POST提交添加辅助单位
  12. Python之路-基本数据类型
  13. Spring Boot + Websocket + Thymeleaf + Lombok
  14. 微服务(入门二):netcore通过consul注册服务
  15. 可持久化trie学习笔记
  16. 【mac环境】终端配色 &amp; 配置使用ll命令
  17. 目标检测论文阅读:Deformable Convolutional Networks
  18. 使用uploadify多文件上传,单个删除上传成功的图片
  19. [控件] CircleView
  20. mybatis之模糊查询SQL

热门文章

  1. What&#39;s new in Safari 11.0
  2. hiho 1617 - 方格取数 - dp
  3. FCC高级编程之Inventory Update
  4. OSI概述问答
  5. vue 事件上加阻止冒泡 阻止默认事件
  6. Pimple相关的源码
  7. C语言之基本算法38—格式化输出10000以内的全部完数
  8. 【翻译自mos文章】开启dblink的 oracle net trace/tracing --对dblink进行跟踪的方法
  9. angularjs $location 服务
  10. js如何实现简繁体互转