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


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 相关文章推荐
使用onbeforeunload属性后的副作用
Mar 08 Javascript
Jquery 获取对象的几种方式介绍
Jan 17 Javascript
JavaScript中双叹号(!!)作用示例介绍
Apr 10 Javascript
javascript中使用正则计算中文长度的例子
Apr 29 Javascript
javascript随机之洗牌算法深入分析
Jun 07 Javascript
jQuery插件jquery-barcode实现条码打印的方法
Nov 25 Javascript
Markdown+Bootstrap图片自适应属性详解
May 21 Javascript
Javascript实现通过选择周数显示开始日和结束日的实现代码
May 30 Javascript
Node.js的文件权限及读写flag详解
Oct 11 Javascript
Vue.js实战之通过监听滚动事件实现动态锚点
Apr 04 Javascript
浅析vue-router jquery和params传参(接收参数)$router $route的区别
Aug 03 jQuery
详解微信小程序胶囊按钮返回|首页自定义导航栏功能
Jun 14 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下通过file_get_contents的代理使用方法
2011/02/16 PHP
适用于抽奖程序、随机广告的PHP概率算法实例
2014/04/09 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
PDO::lastInsertId讲解
2019/01/29 PHP
jQuery 在光标定位的地方插入文字的插件
2012/05/10 Javascript
Javascript 面向对象(三)接口代码
2012/05/23 Javascript
js单例模式的两种方案
2013/10/22 Javascript
jQuery读取和设定KindEditor值的方法
2013/11/22 Javascript
table对象中的insertRow与deleteRow使用示例
2014/01/26 Javascript
Javascript验证上传图片大小[前台处理]
2014/07/18 Javascript
js获取当前时间显示在页面上并每秒刷新
2014/12/24 Javascript
javascript实现九宫格相加数值相等
2020/05/28 Javascript
浅析BootStrap模态框的使用(经典)
2016/04/29 Javascript
通过JS和PHP两种方法判断用户请求时使用的浏览器类型
2016/09/01 Javascript
Angular表单验证实例详解
2016/10/20 Javascript
详解JS中遍历语法的比较
2017/04/07 Javascript
微信小程序实战之轮播图(3)
2017/04/17 Javascript
使用JS组件实现带ToolTip验证框的实例代码
2017/08/23 Javascript
JS实现移动端可折叠导航菜单(现代都市风)
2020/07/07 Javascript
Python学习笔记_数据排序方法
2014/05/22 Python
Python CSV模块使用实例
2015/04/09 Python
举例区分Python中的浅复制与深复制
2015/07/02 Python
详解Python安装scrapy的正确姿势
2018/06/26 Python
Django 实现外键去除自动添加的后缀‘_id’
2019/11/15 Python
pycharm设置当前工作目录的操作(working directory)
2020/02/14 Python
python numpy库np.percentile用法说明
2020/06/08 Python
python绕过图片滑动验证码实现爬取PTA所有题目功能 附源码
2021/01/06 Python
悬挂训练绳:TRX
2017/12/14 全球购物
施华洛世奇意大利官网:SWAROVSKI意大利
2018/07/23 全球购物
迪卡侬(Decathlon)加拿大官网:源自法国的运动专业超市
2020/11/22 全球购物
设计师大码女装:11 Honoré
2020/05/03 全球购物
护理自荐信
2013/10/22 职场文书
年会搞笑主持词
2014/03/27 职场文书
文体活动实施方案
2014/03/27 职场文书
Python-typing: 类型标注与支持 Any类型详解
2021/05/10 Python
超越Nginx的Web服务器caddy优雅用法
2022/06/21 Servers