現(xiàn)在要在微信小程序中實(shí)現(xiàn)點(diǎn)擊控件修改樣式,如下:微信小程序中不支持直接操作dom,要實(shí)現(xiàn)這種效果,我們需要通過設(shè)置data,然后利用數(shù)據(jù)和界面的雙向綁定來實(shí)現(xiàn)它。第一步:在wxss中定義被點(diǎn)擊和未被點(diǎn)擊的樣式, ...
現(xiàn)在要在微信小程序中實(shí)現(xiàn)點(diǎn)擊控件修改樣式,如下:
微信小程序中不支持直接操作dom,要實(shí)現(xiàn)這種效果,我們需要通過設(shè)置data,然后利用數(shù)據(jù)和界面的雙向綁定來實(shí)現(xiàn)它。
第一步:在wxss中定義被點(diǎn)擊和未被點(diǎn)擊的樣式,如下:
[css] view plain copy print?
.service_selection .is_checked{
border: 1px solid #FE0002 ;
color: #FE0002 ;
background: #fff;
}
.service_selection .normal{
border: none;
color: #333;
background: #F0F1EC;
}
第二步:在js文件中的data中設(shè)置一個flag,叫他isChecked,默認(rèn)isChecked==false。如下:
[javascript] view plain copy print?
data: {
isChecked: false
}
第三步:在wxml文件中綁定點(diǎn)擊事件,
[html] view plain copy print?
<view bindtap="serviceSelection"></view>
在js文件中實(shí)現(xiàn)這個方法,并另他點(diǎn)擊后設(shè)置isChecked==true。如下:
[javascript] view plain copy print?
serviceSelection(){
this.setData({
isChecked:true
})
}
第四步:依然是在wxml文件中進(jìn)行數(shù)據(jù)綁定:
[html] view plain copy print?
<view class="{{isChecked?'is_checked':'normal'}}" bindtap="serviceSelection"></view>
重點(diǎn)是這一句代碼
[html] view plain copy print?
{{isChecked?'is_checked':'normal'}}"
這是一個三目運(yùn)算符,當(dāng)isChecked==true時,在class加上is_checked的樣式,為flase時使用normal的樣式。這一點(diǎn)的實(shí)現(xiàn)類似php控制樣式類名的語法。