收藏
回答

怎么可以在点击icon时,改变它的颜色 ?

      <view wx:for="{{seatnum}}"  > 
        <view wx:if="{{item.status == '0'}}"> 
          <icon id="{{item.objectId}}" type='success' bindtap="click" color='green'></icon>
        </view>
        <view wx:elif="{{item.status == '1'}}">
          <icon id="{{item.objectId}}" type='success' bindtap="click" color='red'></icon>
        </view>
        <view wx:elif="{{item.status == '2'}}">
          <icon id="{{item.objectId}}" type='success' bindtap="click" color='orange'></icon>
        </view>
        <view wx:else>
          <icon id="{{item.objectId}}" type='success' bindtap="click" color='grey'></icon>
        </view>
      </view>

从数据库中取得数据后,根据数据库中的属性让icon显示不同的颜色,求问:怎么可以在点击icon时,改变它的颜色?或者这个代码可以怎么修改来得到我想要的效果

回答关注问题邀请回答
收藏

3 个回答

  • brave
    brave
    2020-04-11
    <view wx:for="{{seatnum}}" wx:key="objectId">
      <view>
        <icon data-index="{{index}}" type="success" color="{{item.status == '0' ? 'green' : item.status == '1' ? 'red' : item.status == '2' ? 'orange' : 'grey'}}" bindtap="click" />
      </view>
    </view>
    
    click (e) {
      let index = parseInt(e.currentTarget.dataset.index);
      this.setData({
        [`seatnum[${index}].status`]: "你要的颜色?"
      });
    }
    


    2020-04-11
    有用 1
    回复 3
    • 昂
      2020-04-11
      啊啊 太感谢了 😭
      2020-04-11
      1
      回复
    • brave
      brave
      2020-04-11回复
      下面的大佬也是这样的思路啊,是你没理解
      2020-04-11
      回复
    • 昂
      2020-04-12
      这么一说 还真是,可能是代码来得直接一点,看懂的比较快😂 欸怪我太菜了
      2020-04-12
      回复
  • 郑旭东
    郑旭东
    2020-04-11

    js里面click函数里,this.setData改变item.status

    2020-04-11
    有用 1
    回复 1
    • 昂
      2020-04-11
      seatnum[]是从数据库获取的数据,wxml里面是直接通过这个数据来判断的,而且这个显示是在onready里面执行的,即使我把数据库的数据改了,也需要刷新才能显示 ┭┮﹏┭┮,想要那种点上去就变的那种🙏
      2020-04-11
      回复
  • 一骑白马开吴疆🐎
    一骑白马开吴疆🐎
    2020-06-13

    推荐个颜色选择器组件mini-color-picker,

    

    2020-06-13
    有用 1
    回复
登录 后发表内容
问题标签