寫view點擊添加移除class樣式時,遇到報錯,時靈時不靈的。
報錯之前的寫法
由於是同一個選擇又需分開展示,因此數據沒有寫在js裏面。
WXML
<view class="border">
<view class="{{num == 1?'active':'act'}} conts" data-num="1" data-price="20" bindtap="clickNum">
<view>20元</view>
<text>200個號</text>
</view>
</view>
<view class="border">
<view class="{{num == 2?'active':'act'}} conts" data-num="2" data-price="50" bindtap="clickNum">
<view>50元</view>
<text>500個號</text>
</view>
</view>
JS
data:{
num:0
},
//點擊效果
clickNum: function (e) {
this.setData({
num: e.target.dataset.num
})
console.log(e.target.dataset.price)
}
WXSS
.act{border: 1px solid #dedede;}
.act view{color: #999;}
.active{color: #33cccc;border: 1px solid #33cccc;}
.active view{color: #33cccc;}
此種寫法出來的效果隨緣,一會可以一會不可以,上網搜索之後發現,view點擊事件的子級也許添加相對應的屬性纔可以。
WXML修改後的寫法
<view class="border">
<view class="{{num == 1?'active':'act'}} conts" data-num="1" data-price="20" bindtap="clickNum">
<view data-num="1" data-price="20">20元</view>
<text data-num="1" data-price="20">200個號</text>
</view>
</view>
<view class="border">
<view class="{{num == 2?'active':'act'}} conts" data-num="2" data-price="50" bindtap="clickNum">
<view data-num="2" data-price="50">50元</view>
<text data-num="2" data-price="50">500個號</text>
</view>
</view>
在子級添加對應的data-num,添加data-price是爲了傳值,不需要可刪掉。
修改後不再報錯,點擊效果和傳值都正常,至於問題的源頭不清楚。