微信小程序中多個button/view組件中進行切換時改變樣式


在小程序項目中遇到一個問題:數據分成四五個小組,然后要進行小組切換,切換的同時把button的樣式也要改變,以前Dom操作的時候特別簡單,

現在在小程序中竟不知從何下手,后面參照了這邊博文:http://blog.csdn.net/kelisentian/article/details/72793158,功能也能夠實現了,下面做下記錄:

 wxml代碼:

1    <view  wx:for="{{Object}}" wx:key="Object" wx:for-index="key" wx:for-item="value">
2       <view class="flex-item">
3              <button  bindtap="changeGroup"  data-groupid="{{value.id}}" data-id="{{key}} type="{{key == id ? 'primary' : 'default'}}"> {{value.name}}</button>
4       </view>
5   </view>

css代碼:

1 .flex-item  button {
2   height: 32px;
3   box-sizing: border-box;
4   text-align: center;
5   margin: 10px 0 0 0;
6   min-width: 50px;
7   font-size: 16px;
8   line-height: 32px;
9 }

js代碼:

1 data:{
2     id:''
3 }
1 changeGroup: function(event){
2     var id = event.currentTarget.dataset.id;
3     .....
4    this.setData({
5          id: id
6    });
7 }

結果:

默認為“全部”:

 

可任意切換其他button:

 

另外,值得注意的是,從數據庫里面取出的數據並沒有"全部"這一個對象,而是在請求數據成功之后再添加進去,並且這個對象的下標為是0,這樣的設置默認button的樣式比較好定義

代碼參考:

 1   changeGroup: function(event){
 2     var Object = []; 
 3     wx.request({
 4       url:'',
 5       header:{},
 6       data:{},
 7       method:"",
 8       success: function(res){
 9           if(res.data.state == 'success'){
10            if(res.data.group.length >0){
11               var obj = {};
12               obj.id = '';
13               obj.name = '全部';
14               Object.push(obj);
15            }
16            for(var i = 0; i<res.data.group.length; i++){
17              var o= {};             o.id = res.data.group[i].id;
18              o.name = res.data.group[i].name;
19              Object.push(o);
20           }
21             that.setData({
22             Object: Object,
23            });
24     }
25   })
26 }

好了。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM