如題,我想實現點擊一個cell 那個cell就變色與其他的cell區分開 而且是單選 或者說list該怎麼根據index來獲取cell對象
滿天的星座2017-05-16 13:30:43
在css中使用 active偽類
<template>
<p>
<list class="list">
<cell
v-for="(v,i) in rows"
append="tree"
:index="i"
:key="i"
class="row">
<p class="item">
<text class="item-title">row {{v.id}}</text>
</p>
</cell>
</list>
</text>
</p>
</template>
<style scoped>
.list {
height:850px
}
.count {
font-size: 48px;
margin:10px;
}
.indicator {
height: 40px;
width: 40px;
color:#45b5f0;
}
.row {
width: 750px;
}
.item {
justify-content: center;
border-bottom-width: 2px;
border-bottom-color: #c0c0c0;
height: 100px;
padding:20px;
}
.item:active {
background-color: #00BDFF;
}
.item-title {
}
</style>
具體參考http://weex.apache.org/cn/ref...
过去多啦不再A梦2017-05-16 13:30:43
要達到類似單選的效果,大概可以這麼做:
透過目前行的selected欄位來判斷是否被選中,從而改變background-color
Dom結構如下:
<list>
<cell v-for="(item,index) in listData" v-bind:style="{'background-color':(item.selected?'#dddddd':'#ffffff')}" @click="onSelected(item,index)">
<p>
<text>{{item.text}}</text>
</p>
</cell>
</list>
js結構如下:
data: {
"listData": [
{'text': '开发者头条', selected: false},
{'text': '腾讯新闻', selected: false},
{'text': '搜狐娱乐', selected: false},
{'text': '优酷视频', selected: false}
]
},
methods:{
"onSelected":function(item,index){
if (item.selected) {
this.listData[index].selected = false;
} else {
this.listData[index].selected = true;
}
}
}
希望能夠幫助你