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


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 相关文章推荐
DOM下的节点属性和操作小结
May 14 Javascript
js注意img图片的onerror事件的分析
Jan 01 Javascript
js实现同一页面可多次调用的图片幻灯切换效果
Feb 28 Javascript
JQuery CheckBox(复选框)操作方法汇总
Apr 15 Javascript
jQuery实现下拉框选择图片功能实例
Aug 08 Javascript
jQuery Checkbox 全选 反选的简单实例
Nov 29 Javascript
Angular 4.x 路由快速入门学习
May 03 Javascript
详解如何用webpack打包一个网站应用项目
Jul 12 Javascript
VUE中的无限循环代码解析
Sep 22 Javascript
从0到1构建vueSSR项目之路由的构建
Mar 07 Javascript
浅谈Javascript常用正则表达式应用
Mar 08 Javascript
详解vue微信网页授权最终解决方案
Jun 16 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
ThinkPHP中的三大自动简介
2014/08/22 PHP
PHP自定义函数获取汉字首字母的方法
2016/12/01 PHP
强悍无比的WEB开发好助手FireBug(Firefox Plugin)
2007/01/16 Javascript
JS实多级联动下拉菜单类,简单实现省市区联动菜单!
2007/05/03 Javascript
QUnit jQuery的TDD框架
2010/11/04 Javascript
JavaScript异步调用定时方法并停止该方法实现代码
2012/03/16 Javascript
js取两个数组的交集|差集|并集|补集|去重示例代码
2013/08/07 Javascript
jQuery关于导航条背景切换效果实现示例
2013/09/04 Javascript
jQuery中prepend()方法用法实例
2014/12/25 Javascript
jquery实现翻动fadeIn显示的方法
2015/03/05 Javascript
jquery实现手风琴效果
2015/11/20 Javascript
jQuery实现的超简单点赞效果实例分析
2015/12/31 Javascript
JS实现复制内容到剪贴板功能兼容所有浏览器(推荐)
2016/06/17 Javascript
BootStrap selectpicker
2016/06/20 Javascript
nodejs结合socket.io实现websocket通信功能的方法
2018/01/12 NodeJs
微信小程序如何播放腾讯视频的实现
2019/09/20 Javascript
JS如何把字符串转换成json
2020/02/21 Javascript
原生js滑动轮播封装
2020/07/31 Javascript
vue 使用原生组件上传图片的实例
2020/09/08 Javascript
Python threading多线程编程实例
2014/09/18 Python
Python标准库之sqlite3使用实例
2014/11/25 Python
python退出命令是什么?详解python退出方法
2018/12/10 Python
Python爬虫beautifulsoup4常用的解析方法总结
2019/02/25 Python
Python常见的pandas用法demo示例
2019/03/16 Python
PyCharm搭建Spark开发环境实现第一个pyspark程序
2019/06/13 Python
通过python改变图片特定区域的颜色详解
2019/07/15 Python
python 检查数据中是否有缺失值,删除缺失值的方式
2019/12/02 Python
H5新属性audio音频和video视频的控制详解(推荐)
2016/12/09 HTML / CSS
家长给孩子的评语
2014/01/30 职场文书
店面销售职位的职责
2014/03/09 职场文书
会计员岗位职责
2014/03/15 职场文书
学生检讨书如何写
2014/10/30 职场文书
质量保证书怎么写
2015/02/27 职场文书
辞职信怎么写
2015/02/27 职场文书
go语言中http超时引发的事故解决
2021/06/02 Golang
Javascript的promise,async和await的区别详解
2022/03/24 Javascript