鍍金池/ 問答/HTML/ 微信小程序:需求一個按鈕有三種狀態(tài),應該怎么去改變?

微信小程序:需求一個按鈕有三種狀態(tài),應該怎么去改變?

如題:一般按鈕是有2個狀態(tài),true和false,而true是選中,false則不選中,但如果按鈕有3個狀態(tài)呢?應該怎樣去判斷?

圖一:注意看時間按鈕,升序狀態(tài),這里是給true和false去做判斷的,升序是用了true
圖片描述

圖二:注意看時間按鈕,降序狀態(tài),這里是給true和false去做判斷的,降序是用了false
圖片描述

圖三:注意看時間按鈕,這里是第三種狀態(tài),普通狀態(tài),這個普通狀態(tài)不是點擊時間按鈕所顯示的,而是點擊分類按鈕的其中一項 或者 點擊銷量、價格等按鈕,這里的時間按鈕就會變成普通的狀態(tài),不知道怎么實現(xiàn)? 我嘗試過給數(shù)字,0,1,2分成三段,然后給個wx:if,但不知道是不是我語法的問題,完全沒效果,只能出來2個狀態(tài)。求大神們告知,感激不盡~~!ps:按鈕隔壁的2個小三角形是一整張的圖片,三個狀態(tài)各自對應著三張的圖片;可以理解為點擊時,請求數(shù)據(jù)并替換圖片
圖片描述

回答
編輯回答
護她命

一般按鈕是有2個狀態(tài),true和false。非也
用數(shù)字或者常量表示狀態(tài)就可以判斷

2018年1月15日 20:15
編輯回答
脾氣硬

今天終于自己找到了答案,這里的按鈕還是給true和false作為判斷,true是升序;false是降序;然后讓時間這個按鈕默認為一個字符串;ps:注意,一定最好是字符串,因為我之前是用0,1,2這三位數(shù)字來進行判斷的,而0剛剛好在微信小程序里面默認是為false,所以導致了沖突;直接給個字符串,然后在點擊時間按鈕的時候,渲染數(shù)據(jù)并setData取反就可以了;以下是setData取反的代碼;

一開始在data里面設置一個變量,把時間按鈕變成默認的樣式
data: {

ArrowStatus: "nromal"

},

然后在點擊按鈕后,請求數(shù)據(jù),并設置數(shù)據(jù)
onPostTimeList: function (event) {
/這部分的代碼是請求數(shù)據(jù),就不一一寫了/
/下面是設置數(shù)據(jù)并取反/

this.setData({
  ArrowStatus: (!this.data.ArrowStatus)
})

}

2017年6月10日 09:17
編輯回答
安于心

其實這不是按鈕有幾種狀態(tài)的問題,如果你給每個三角都設置兩種狀態(tài)的話,那加起來時間按鈕的狀態(tài)總的有四種(有一個三角被選中(上三角、下三角)、有兩個被選中、兩個都沒被選中)。這樣想的話,那其實只是需要給每個三角加兩種狀態(tài)進行判斷就行了。您覺得呢?

2017年4月6日 11:39