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


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 相关文章推荐
JS中style属性
Oct 11 Javascript
jQuery 行级解析读取XML文件(附源码)
Oct 12 Javascript
jquery解决图片路径不存在执行替换路径
Feb 06 Javascript
JS Pro-深入面向对象的程序设计之继承的详解
May 07 Javascript
JS验证控制输入中英文字节长度(input、textarea等)具体实例
Jun 21 Javascript
Javascript 浮点运算精度问题分析与解决
Mar 26 Javascript
基于JavaScript实现生成名片、链接等二维码
Sep 20 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
Oct 17 Javascript
JS设置下拉列表框当前所选值的方法
Dec 22 Javascript
BootStrap table表格插件自适应固定表头(超好用)
Aug 24 Javascript
Vue自定义弹窗指令的实现代码
Aug 13 Javascript
浅谈JavaScript中你可能不知道URL构造函数的属性
Jul 13 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-fpm添加service服务的例子
2018/04/27 PHP
PHP PDOStatement::bindParam讲解
2019/01/30 PHP
php利用array_search与array_column实现二维数组查找
2019/07/08 PHP
解决PHP使用CURL发送GET请求时传递参数的问题
2019/10/11 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
JQery 渐变图片导航效果代码 漂亮
2010/01/01 Javascript
JavaScript高级程序设计 客户端存储学习笔记
2011/09/10 Javascript
js 获取计算后的样式写法及注意事项
2013/02/25 Javascript
jquery改变disabled的boolean状态的三种方法
2013/12/13 Javascript
谈谈js中的prototype及prototype属性解释和常用方法
2015/11/25 Javascript
详解jQuery移动页面开发中的ui-grid网格布局使用
2015/12/03 Javascript
jQuery轻松实现表格的隔行变色和点击行变色的实例代码
2016/05/09 Javascript
浅析jQuery Ajax通用js封装
2016/06/22 Javascript
使用ionic(选项卡栏tab) icon(图标) ionic上拉菜单(ActionSheet) 实现通讯录界面切换实例代码
2017/10/20 Javascript
jquery 时间戳转日期过程详解
2019/10/12 jQuery
ZK中使用JS读取客户端txt文件内容问题
2019/11/07 Javascript
全局安装 Vue cli3 和 继续使用 Vue-cli2.x操作
2020/09/08 Javascript
采用python实现简单QQ单用户机器人的方法
2014/07/03 Python
详解Python nose单元测试框架的安装与使用
2017/12/20 Python
简单了解python反射机制的一些知识
2019/07/13 Python
浅谈pytorch卷积核大小的设置对全连接神经元的影响
2020/01/10 Python
django 解决自定义序列化返回处理数据为null的问题
2020/05/20 Python
Keras 切换后端方式(Theano和TensorFlow)
2020/06/19 Python
基于OpenCV的路面质量检测的实现
2020/11/04 Python
聊聊python在linux下与windows下导入模块的区别说明
2021/03/03 Python
KIEHL’S科颜氏官方旗舰店:源自美国的顶级护肤品牌
2018/06/07 全球购物
Street One瑞士:德国现代时装公司
2019/10/09 全球购物
转预备党员政审材料
2014/02/06 职场文书
彩色的翅膀教学反思
2014/04/25 职场文书
寻找最美家庭活动方案
2014/08/20 职场文书
新生入学欢迎词
2015/01/26 职场文书
公司周年庆寄语
2019/06/21 职场文书
vue实现简单数据双向绑定
2021/04/28 Vue.js
关于JS中的作用域中的问题思考分享
2022/04/06 Javascript
vue实现input输入模糊查询的三种方式
2022/08/14 Vue.js
mysql序号rownum行号实现方式
2022/12/24 MySQL