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


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 对表格的行和列都能加亮显示
Dec 26 Javascript
基于jquery的inputlimiter 实现字数限制功能
May 30 Javascript
jQuery语法高亮插件支持各种程序源代码语法着色加亮
Apr 27 Javascript
JS注释所产生的bug 即使注释也会执行
Nov 19 Javascript
javascript动态设置样式style实例分析
May 13 Javascript
动态设置form表单的action属性的值的简单方法
May 25 Javascript
JavaScript面向对象精要(上部)
Sep 12 Javascript
SeaJS中use函数用法实例分析
Oct 10 Javascript
微信小程序canvas实现刮刮乐效果
Jul 09 Javascript
对angularJs中自定义指令replace的属性详解
Oct 09 Javascript
微信小程序实现滚动加载更多的代码
Dec 06 Javascript
react组件基本用法示例小结
Apr 27 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
融入意大利的咖啡文化
2021/03/03 咖啡文化
php下正则来匹配dede模板标签的代码
2010/08/21 PHP
PHP isset()与empty()的使用区别详解
2010/08/29 PHP
小文件php+SQLite存储方案
2010/09/04 PHP
php中设置多级目录session的问题
2011/08/08 PHP
memcache命令启动参数中文解释
2014/01/13 PHP
采用thinkphp自带方法生成静态html文件详解
2014/06/13 PHP
php绘图之生成饼状图的方法
2015/01/24 PHP
php实现发送微信模板消息的方法
2015/03/07 PHP
CodeIgniter控制器之业务逻辑实例分析
2016/01/20 PHP
php探针使用原理和技巧讲解
2019/09/17 PHP
jquery tools系列 expose 学习
2009/09/06 Javascript
js比较和逻辑运算符的介绍
2013/03/10 Javascript
关于删除时的提示处理(确定删除吗)
2013/11/03 Javascript
js判断是否为ie的方法小结
2014/01/13 Javascript
对new functionName()定义一个函数的理解
2014/05/22 Javascript
require.js 加载 vue组件 r.js 合并压缩的实例
2016/10/14 Javascript
JS实现鼠标移上去显示图片或微信二维码
2016/12/14 Javascript
获取当前月(季度/年)的最后一天(set相关操作及应用)
2016/12/27 Javascript
如何使用angularJs
2017/05/08 Javascript
bootstrap table实现点击翻页功能 可记录上下页选中的行
2017/09/28 Javascript
node前端开发模板引擎Jade的入门
2018/05/11 Javascript
教你用一行Python代码实现并行任务(附代码)
2018/02/02 Python
tensorflow TFRecords文件的生成和读取的方法
2018/02/06 Python
pandas 数据实现行间计算的方法
2018/06/08 Python
详解Python是如何实现issubclass的
2019/07/24 Python
django自带调试服务器的使用详解
2019/08/29 Python
图解python全局变量与局部变量相关知识
2019/11/02 Python
pytorch 计算ConvTranspose1d输出特征大小方式
2020/06/23 Python
土地租赁意向书
2014/07/30 职场文书
观看信仰心得体会
2014/09/04 职场文书
干货分享:推荐信写作技巧!
2019/06/21 职场文书
互联网创业商业模式以及赚钱法则有哪些?
2019/10/12 职场文书
SSM VUE Axios详解
2021/10/05 Vue.js
详解Mysq MVCC多版本的并发控制
2022/04/29 MySQL
服务器nginx权限被拒绝解决案例
2022/09/23 Servers