小程序实现选择题的显示方法

下面是三张效果图:初始图,选项正确图,选项错误图。


wxml代码:

<view class='selection'>
  <view class='{{view1}}' bindtap='view1Click' id='1'>a</view>
  <view class='{{view2}}' bindtap='view2Click' id='2'>b</view>
  <view class='{{view3}}' bindtap='view3Click' id='3'>c</view>
  <view class='{{view4}}' bindtap='view4Click' id='4'>d</view>
</view>

js代码:

Page({

  /**
   * 页面的初始数据
   */
  data: {
    view1: 'selection1',
    view2: 'selection1',
    view3: 'selection1',
    view4: 'selection1',
    // 默认答案为2,后台会给的
    key: 2,
    // 选项是否被点击
    isSelect: false
  },

  view1Click: function(e) {
    var select = e.target.id
    // 选项没被选择时将执行
    if (!this.data.isSelect) {
      // 将选项设置为“已被选择”
      this.setData({
        isSelect: true
      })
      // 注意!此处必须是'=='而不是'='
      if (select == this.data.key) {
        this.setData({
          view1: 'selection2'
        })
      } else {
        this.setData({
          view1: 'selection3'
        })
        // 将正确选项显示出来
        this.showAnswer(this.data.key)
      }

    }
  },
  view2Click: function(e) {
    var select = e.target.id
    // 选项没被选择时将执行
    if (!this.data.isSelect) {
      this.setData({
        isSelect: true
      })
      // 注意!此处必须是'=='而不是'='
      if (select == this.data.key) {
        this.setData({
          view2: 'selection2'
        })
      } else {
        this.setData({
          view2: 'selection3'
        })
        // 将正确选项显示出来
        this.showAnswer(this.data.key)
      }

    }
  },
  view3Click: function(e) {
    var select = e.target.id
    // 选项没被选择时将执行
    if (!this.data.isSelect) {
      this.setData({
        isSelect: true
      })
      // 注意!此处必须是'=='而不是'='
      if (select == this.data.key) {
        this.setData({
          view3: 'selection2'
        })
      } else {
        this.setData({
          view3: 'selection3'
        })
        // 将正确选项显示出来
        this.showAnswer(this.data.key)
      }

    }
  },
  view4Click: function(e) {
    var select = e.target.id
    // 选项没被选择时将执行
    if (!this.data.isSelect) {
      this.setData({
        isSelect: true
      })
      // 注意!此处必须是'=='而不是'='
      if (select == this.data.key) {
        this.setData({
          view4: 'selection2'
        })
      } else {
        this.setData({
          view4: 'selection3'
        })
        // 将正确选项显示出来
        this.showAnswer(this.data.key)
      }

    }
  },
  showAnswer: function(key) {
    // 通过swith语句判断正确答案,从而显示正确选项
    switch (key) {
      case 1:
        this.setData({
          view1: 'selection2'
        })
        break;
      case 2:
        this.setData({
          view2: 'selection2'
        })
        break;
      case 3:
        this.setData({
          view3: 'selection2'
        })
        break;
      default:
        this.setData({
          view4: 'selection2'
        })
    }
  }
})


wxss代码:

.selection1 {
width: 400 rpx ;
height: 150 rpx ;
background-color: grey ;

display: flex ;
flex-direction: column ;
justify-content: space-around ;
align-items: center ;
}
.selection2 {
width: 400 rpx ;
height: 150 rpx ;
background-color: blue ;
display: flex ;
flex-direction: column ;
justify-content: space-around ;
align-items: center ;
}
.selection3 {
width: 400 rpx ;
height: 150 rpx ;
background-color: red ;
display: flex ;
flex-direction: column ;
justify-content: space-around ;
align-items: center ;
}
.selection {
width: 750 rpx ;
height: 800 rpx ;
display: flex ;
flex-direction: column ;
justify-content: space-around ;
align-items: center ;
}


微信小程序源码(含截图)题库:选择选项,切换至下一题微信小程序源码(含截图)题库:选择选项,切换至下一题微信小程序源码(含截图)题库:选择选项,切换至下一题微信小程序源码(含截图)题库:选择选项,切换至下一题微信小程序源码(含截图)题库:选择选项,切换至下一题微信小程序源码(含截图)题库:选择选项,切换至下一题微信小程序源码(含截图)题库:选择选项,切换至下一题微信小程序源码(含截图)题库:选择选项,切换至下一题微信小程序源码(含截图)题库:选择选项,切换至下一题微信小程序源码(含截图)题库:选择选项,切换至下一题微信小程序源码(含截图)题库:选择选项,切换至下一题微信小程序源码(含截图)题库:选择选项,切换至下一题微信小程序源码(含截图)题库:选择选项,切换至下一题微信小程序源码(含截图)题库:选择选项,切换至下一题微信小程序源码(含截图)题库:选择选项,切换至下一题微信小程序源码(含截图)题库:选择选项,切换至下一题微信小程序源码(含截图)题库:选择选项,切换至下一题微信小程序源码(含截图)题库:选择选项,切换至下一题微信小程序源码(含截图)题库:选择选项,切换至下一题微信小程序
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值