小程序中,如何切换通过wx:for渲染出来的DOM元素的class


noselect.png
selected.png

功能需求很简单,点击某个按钮,如果答题正确,被点击的按钮变为蓝色,否则变为红色。
在小程序中,是无法操作DOM元素的,如果用Jquery的话,$(this).addClass('red');真的简单粗暴,没办法,碰上问题了不能躲啊,想办法!
Baidu: “在小程序中动态操作DOM元素的class”


answer.png

此答案是运用data--xx向事件传递参数 + 三元运算符 实现的一个点击DOM元素,切换其class的原理。
比如我要把点击的时候变成红色
我就可以这样写


// 不知道在事件中如何获取data携带的数据的话,去翻一下小程序文档的 “事件”
事件触发的是第一个按钮,就会this.setData({ arg: event.currentTarget.dataset.arg }),此时第一个按钮变为红色,因为把arg设置为了1,
事件触发的如果是第二个按钮,同样,第二个按钮就会变成红色。

看到这里,似乎一切都很顺当,But! 问题来了,我要解决的问题不光是要变换颜色,而是在变换颜色之前还要加上一层逻辑,用户是否点击了正确的答案,如果答对,加的是蓝色的class,如果答错,加的是红色的class,又陷入了思考的漩涡中。。。

结果当然是想出来喽~


解决思路:1: 一共要有两个class,.right对应正确的蓝色 .false对应错误的红色
2:给每个按钮都加上独一无二的标识

你可能感兴趣的:(小程序中,如何切换通过wx:for渲染出来的DOM元素的class)