微信小程序实现收藏与取消收藏切换图片功能


Posted in Javascript onAugust 03, 2018

wxml界面使用image标签

<image wx:if="{{collected}}" catchtap='onCollectionTap' src='/images/icon/collection.png'></image>
   <image wx:else src='/images/icon/collection-anti.png' catchtap='onCollectionTap'></image>

js文件上的脚本:

// pages/post_detail/post_detail.js
var postData = require("../../data/posts_data.js")
Page({
 /**
  * 页面的初始数据
  */
 data: {
 },
 /**
  * 生命周期函数--监听页面加载
  */
 onLoad: function(options) {
  var postId = options.id;
  this.data.currentPostId = postId
  var postsData = postData.postList[postId];
  console.log(postsData);
  // this.data.postData=postsData;
  this.setData({
   post_key: postsData
  })
  // var postsCollected={
  //  1:"true",
  //  2:"false",
  //  3:"true",
  // }
  // console.log(postData);
  // 从缓存中读取所有的缓存状态
  var postsCollected = wx.getStorageSync("posts_Collected")
  //如果缓存为真,执行以下代码
  if (postsCollected) {
   //读取其中一个缓存状态
   var postsCollected = postsCollected[postId]
   this.setData({
    //将是否被收藏的状态上绑定到collected这个变量上
    collected: postsCollected
   })
  } else {
   var postsCollected = {};
   postsCollected[postId] = false;
   wx.setStorageSync("posts_Collected", postsCollected)
  }
 },
 onCollectionTap: function(event) {
  //获取缓存的方法
  var postsCollected = wx.getStorageSync('posts_Collected');
  var postCollected = postsCollected[this.data.currentPostId];
  console.log(postCollected);
  //取反操作,收藏的话,点击变成未收藏,反之,变成收藏。
  postCollected = !postCollected;
  postsCollected[this.data.currentPostId] = postCollected;
  // //更新文章是否收藏的缓存值。
  // wx.setStorageSync('posts_Collected', postsCollected)
  // //更新数据绑定变量,从而实现切换图片。
  // this.setData({
  //  collected: postCollected
  // })
  this.showModal(postsCollected, postCollected)
  // wx.showToast({
  //  title: postCollected ? "收藏成功" : "取消收藏",
  //  duration: 800,
  //  icon: "success"
  // })
  // wx.showModal({
  //  title: '确定收藏',
  //  content: '这是一个模态弹窗',
  //  success: function (res) {
  //   if (res.confirm) {
  //    console.log('用户点击确定')
  //   } else if (res.cancel) {
  //    console.log('用户点击取消')
  //   }
  //  }
  // })
  console.log("onCollectionTap");
 },
//使用showModal API来实现界面上逻辑操作。
 showModal: function(postsCollected, postCollected) {
//这个注意一下,由于this是在page下调用的方法,这里是在自定义函数下,所有必须重新赋值到一个新的变量,才能重新使用,不明白的同学们,记住就行。
  var ts = this;
  wx.showModal({
   title: '收藏',
   content: postCollected ? "收藏该文章" : "取消收藏该文章",
   success: function(res) {
    if (res.confirm) {
     wx.setStorageSync('posts_Collected', postsCollected)
     //更新数据绑定变量,从而实现切换图片。
     ts.setData({
      collected: postCollected
     })
     console.log('用户点击确定')
    } else if (res.cancel) {
     console.log('用户点击取消')
    }
   }
  })
 },
 // onCollectionTap: function(event) {
 //  var baoxue = wx.getStorageSync("key");
 //  console.log(baoxue);
 // },
 onShareTap: function(event) {
  // wx.removeStorageSync("key")
  //缓存的上限最大不能超过10MB
  wx.clearStorageSync();
  console.log("onShareTap");
 },
 /**
  * 生命周期函数--监听页面初次渲染完成
  */
 onReady: function() {
 },
 /**
  * 生命周期函数--监听页面显示
  */
 onShow: function() {
 },
 /**
  * 生命周期函数--监听页面隐藏
  */
 onHide: function() {
 },
 /**
  * 生命周期函数--监听页面卸载
  */
 onUnload: function() {
 },
 /**
  * 页面相关事件处理函数--监听用户下拉动作
  */
 onPullDownRefresh: function() {
 },
 /**
  * 页面上拉触底事件的处理函数
  */
 onReachBottom: function() {
  console.log("到底了");
 },
 /**
  * 用户点击右上角分享
  */
 onShareAppMessage: function() {
 }
})

微信小程序实现收藏与取消收藏切换图片功能

微信小程序实现收藏与取消收藏切换图片功能

微信小程序实现收藏与取消收藏切换图片功能

微信小程序实现收藏与取消收藏切换图片功能

总结

以上所述是小编给大家介绍的微信小程序实现收藏与取消收藏切换图片功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript HTMLEncode HTMLDecode的完整实例(兼容ie和火狐)
Jun 02 Javascript
Javascript 面向对象 继承
May 13 Javascript
jQuery Autocomplete自动完成插件
Jul 17 Javascript
JavaScript对象和字串之间的转换实例探讨
Apr 21 Javascript
jquery win 7透明弹出层效果的简单代码
Aug 06 Javascript
javascript如何动态加载表格与动态添加表格行
Nov 27 Javascript
你有必要知道的25个JavaScript面试题
Dec 29 Javascript
js实现复选框的全选和取消全选效果
Jan 03 Javascript
浅谈webpack4.x 入门(一篇足矣)
Sep 05 Javascript
vue限制输入框只能输入8位整数和2位小数的代码
Nov 06 Javascript
JavaScript对象原型链原理详解
Feb 05 Javascript
Echarts如何重新渲染实例详解
May 30 Javascript
解决mpvue + vuex 开发微信小程序vuex辅助函数mapState、mapGetters不可用问题
Aug 03 #Javascript
mpvue跳转页面及注意事项
Aug 03 #Javascript
JavaScript高级函数应用之分时函数实例分析
Aug 03 #Javascript
mpvue小程序仿qq左滑置顶删除组件
Aug 03 #Javascript
JavaScript中call和apply方法的区别实例分析
Aug 03 #Javascript
JavaScript捕捉事件和阻止冒泡事件实例分析
Aug 03 #Javascript
关于js对textarea换行符的处理方法浅析
Aug 03 #Javascript
You might like
一个PHP模板,主要想体现一下思路
2006/12/25 PHP
php Sql Server连接失败问题及解决办法
2009/08/07 PHP
$_GET['goods_id']+0 的使用详解
2013/06/06 PHP
解决FastCGI 进程超过了配置的活动超时时限的问题
2013/07/03 PHP
php环境无法上传文件的解决方法
2014/04/30 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十一)
2014/06/25 PHP
php获取一定范围内取N个不重复的随机数
2016/05/28 PHP
php实现留言板功能
2017/03/05 PHP
javascript实现数独解法
2015/03/14 Javascript
jquery实现的树形目录实例
2015/06/26 Javascript
JavaScript实现基于十进制的四舍五入实例
2015/07/17 Javascript
javascript拖拽应用实例(二)
2016/03/25 Javascript
第一次接触神奇的Bootstrap基础排版
2016/07/26 Javascript
bootstrap基本配置_动力节点Java学院整理
2017/07/14 Javascript
Vue-路由导航菜单栏的高亮设置方法
2018/03/17 Javascript
详解解决Vue相同路由参数不同不会刷新的问题
2018/10/12 Javascript
vue实现可视化可拖放的自定义表单的示例代码
2019/03/20 Javascript
详解vue-router的导航钩子(导航守卫)
2020/11/02 Javascript
[55:18]Liquid vs Chaos 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
[38:38]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.17
2020/12/18 DOTA
MySQL中表的复制以及大型数据表的备份教程
2015/11/25 Python
Python数据结构之栈、队列的实现代码分享
2017/12/04 Python
Python中摘要算法MD5,SHA1简介及应用实例代码
2018/01/09 Python
python3 cvs将数据读取为字典的方法
2018/12/22 Python
pycharm 将python文件打包为exe格式的方法
2019/01/16 Python
python 实现二维列表转置
2019/12/02 Python
vue常用指令代码实例总结
2020/03/16 Python
Python celery原理及运行流程解析
2020/06/13 Python
PyTorch安装与基本使用详解
2020/08/31 Python
一款css实现的鼠标经过按钮的特效
2014/09/11 HTML / CSS
澳大利亚宠物食品和药物在线:Jumbo Pets
2018/03/24 全球购物
简短大学毕业感言
2014/01/18 职场文书
个人合作协议书范本
2014/04/18 职场文书
公司人事专员岗位职责
2014/08/11 职场文书
先进人物事迹材料
2014/12/29 职场文书
python中的None与NULL用法说明
2021/05/25 Python