微信小程序实现列表页的点赞和取消点赞功能


Posted in Javascript onNovember 02, 2018

今天开发了一个文章的留言版块,于是想到要为某个留言点赞,点过赞的再次点击会取消点赞,代码如下:

/*更新点赞*/ 
 update_zan:function(e){ 
  var that = this; 
  var data = e.currentTarget.dataset; 
  var mid = data.mid; 
  var cookie_mid = wx.getStorageSync('zan') || [];//获取全部点赞的mid 
  var isadd = 1; 
  var newmessage = []; 
  if (cookie_mid.includes(mid)){//说明已经点过赞,取消赞 
   isadd = 0; 
   var m = 0; 
   for (var j in cookie_mid){ 
    if(cookie_mid[j] != mid){ 
     newmessage[m] = cookie_mid[j]; 
     m++ 
    } 
   } 
   wx.setStorageSync('zan', newmessage);//删除取消赞的mid 
  }else{ 
   cookie_mid.unshift(mid); 
   wx.setStorageSync('zan', cookie_mid);//新增赞的mid 
  } 
  wx.request({ 
   url: app.globalData.api.api_system, 
   data: { 
    action: 'zannum', 
    mid: mid, 
    isadd: isadd, 
    wxid: app.globalData.wxid 
   }, 
   method: 'GET', 
   // header: {},  
   success: function (res) { 
    var message = that.data.message; 
    for (var i in message) { 
     if(message[i].mid == mid){ 
      if(isadd){ 
       message[i].zan = parseInt(message[i].zan) + 1 
      }else{ 
       message[i].zan = parseInt(message[i].zan) - 1 
      } 
       
     } 
    } 
    that.setData({ 
     message: message 
    }) 
   } 
  })

重点注意代码:

(1)要把所有已经点过赞的留言id给存储到本地缓存之中,这样如果重复点赞的,就可以判断出来,并取消点赞,取消点赞的同时要去掉缓存中的id;
(2)新增点赞和取消点赞用到同一个api,通过isadd=1或者isadd=0来判断是新增还是取消点赞
(3)为了不频繁去读取留言列表,可以直接调用this.data.message,并通过循环遍历改变某个留言的点赞数,然后直接重新赋值,就能动态改变点赞数!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js中将URL中的参数提取出来作为对象的实现代码
Aug 16 Javascript
javascript 常用功能总结
Mar 18 Javascript
Javascript中的delete介绍
Sep 02 Javascript
js简单实现用户注册信息的校验代码
Nov 15 Javascript
Get中文乱码IE浏览器Get中文乱码解决方案
Dec 26 Javascript
javascript 3d 逐侦产品展示(核心精简)
Mar 26 Javascript
探索angularjs+requirejs全面实现按需加载的套路
Feb 26 Javascript
基于JS实现网页中的选项卡(两种方法)
Jun 16 Javascript
纯js实现隔行变色效果
Nov 29 Javascript
深入剖析Node.js cluster模块
May 23 Javascript
原生JS实现图片懒加载之页面性能优化
Apr 26 Javascript
Vue全局loading及错误提示的思路与实现
Aug 09 Javascript
React如何解决fetch跨域请求时session失效问题
Nov 02 #Javascript
element ui table 增加筛选的方法示例
Nov 02 #Javascript
Vue请求JSON Server服务器数据的实现方法
Nov 02 #Javascript
详解使用element-ui table组件的筛选功能的一个小坑
Nov 02 #Javascript
如何使用vuex实现兄弟组件通信
Nov 02 #Javascript
JavaScript 复制对象与Object.assign方法无法实现深复制
Nov 02 #Javascript
vue头部导航动态点击处理方法
Nov 02 #Javascript
You might like
通过文字传递创建的图形按钮
2006/10/09 PHP
php学习笔记(三)操作符与控制结构
2011/08/06 PHP
CodeIgniter辅助之第三方类库third_party用法分析
2016/01/20 PHP
PHP goto语句用法实例
2019/08/06 PHP
IE8下关于querySelectorAll()的问题
2010/05/13 Javascript
JavaScript Window浏览器对象模型方法与属性汇总
2015/04/20 Javascript
JQuery标签页效果的两个实例讲解(4)
2015/09/17 Javascript
使用Sticky组件实现带sticky效果的tab导航和滚动导航的方法
2016/03/22 Javascript
Javascript 普通函数和构造函数的区别
2016/11/05 Javascript
详解vue 中使用 AJAX获取数据的方法
2017/01/18 Javascript
Node.js获取前端ajax提交的request信息
2017/02/20 Javascript
JS作用域链详解
2017/06/26 Javascript
jQuery实现checkbox的简单操作
2017/11/18 jQuery
JQuery获得内容和属性方法解析
2020/05/30 jQuery
Vue项目配置跨域访问和代理proxy设置方式
2020/09/08 Javascript
python k-近邻算法实例分享
2014/06/11 Python
python使用wxpython开发简单记事本的方法
2015/05/20 Python
PYTHON基础-时间日期处理小结
2018/05/05 Python
Python如何发布程序的详细教程
2018/10/09 Python
对Python中Iterator和Iterable的区别详解
2018/10/18 Python
华为2019校招笔试题之处理字符串(python版)
2019/06/25 Python
Python自动化导出zabbix数据并发邮件脚本
2019/08/16 Python
Python代码生成视频的缩略图的实例讲解
2019/12/22 Python
Python如何重新加载模块
2020/07/29 Python
基于IE10/HTML5 开发
2013/04/22 HTML / CSS
大学毕业生文采飞扬的自我鉴定
2013/12/03 职场文书
我们的节日端午节活动方案
2014/03/02 职场文书
新年主持词
2014/03/27 职场文书
普通话演讲稿
2014/09/03 职场文书
2014老师三严三实对照检查材料思想汇报
2014/09/18 职场文书
2014年医德医风工作总结
2014/11/13 职场文书
2015年感恩父亲节演讲稿
2015/03/19 职场文书
水浒传读书笔记
2015/06/25 职场文书
企业内部管理控制:银行存款控制制度范本
2020/01/10 职场文书
游戏《铁拳》动画化!2022年年内播出
2022/03/21 日漫
Win11控制面板快捷键是什么?Win11打开控制面板的方法汇总
2022/07/07 数码科技