zoukankan      html  css  js  c++  java
  • 微信小程序之点赞和取消点赞

    wxml代码

    <image wx:if="{{collection}}" src="/images/boy.png"  bindtap="toCollect"></image>
    <image wx:else src="/images/girl.png" bindtap="toCollect"></image>
    
    
    切换图片
    

    js代码

    Page({
      data: {
      },
      onLoad: function (option) {
        // 获取接收到的id值
        var getId = option.id;
        // 让接收到的id值传递到data:{}里面
        // this.setData({
        //   currentId: getId
        // });
        // 读取所有的文章列表点赞缓存状态
        var cache = wx.getStorageSync('cache_key');
        // 如果缓存状态存在
        if (cache) {
          // 拿到所有缓存状态中的1个
          var currentCache = cache[getId];
          // 把拿到的缓存状态中的1个赋值给data中的collection,如果当前文章没有缓存状态,currentCache 的值就是 false,如果当前文章的缓存存在,那么 currentCache 就是有值的,有值的说明 currentCache 的值是 true
          this.setData({
            collection: currentCache
          })
        } else {
          // 如果所有的缓存状态都不存在 就让不存在的缓存存在
          var cache = {};
          // 既然所有的缓存都不存在,那么当前这个文章点赞的缓存也不存在,我们可以把当前这个文章点赞的缓存值设置为 false
          cache[getId] = false;
          // 把设置的当前文章点赞放在整体的缓存中
          wx.setStorageSync('cache_key', cache);
        }
      },
      // 点击图片的点赞事件  这里使用的是同步的方式
      toCollect: function (event) {
        // 获取缓存,得到当前文章是否被点赞
        var cache = wx.getStorageSync('cache_key');
        // 获取当前文章是否被点赞的缓存
        var currentCache = cache[this.data.currentId];
        // 取反,点赞的变成未点赞 未点赞的变成点赞
        currentCache = !currentCache;
        // 更新cache中的对应的1个的缓存值,使其等于当前取反的缓存值
        cache[this.data.currentId] = currentCache;
        // 调用 showModal方法
        this.showModal(cache, currentCache);
      },
      showModal: function (cache, currentCache) {
        var that = this;
        wx.showModal({
          title: "2222步",
          content: currentCache ? "点赞" : "取消点赞",
          showCancel: false,
          // cancelText: "取消111",
          // cancelColor: "#000",
          confirmText: "知道啦",
          confirmColor: "#0f0",
          success: function (res) {
            console.log(res)
            if (res.confirm) {
              // 重新设置缓存
              wx.setStorageSync('cache_key', cache);
              // 更新数据绑定,从而切换图片
              that.setData({
                collection: currentCache
              })
            }
          }
        })
      }
    })
    

      

  • 相关阅读:
    PL/SQL Developer使用技巧、快捷键(转发)
    Java 获取随机日期
    jsonArray和Java List对象互转,日期处理
    ExtJs grid单选,多选
    ExtJs 下拉单联动,次级下拉框查询模式
    ExtJs 日期相加,Grid表格列可编辑
    转:Java阳历转农历
    转:Java 计算2个时间相差多少年,多少个月,多少天的几种方式
    钥匙计数之一
    LianLianKan
  • 原文地址:https://www.cnblogs.com/520BigBear/p/9309104.html
Copyright © 2011-2022 走看看