在vue中當(dāng)我們要實(shí)現(xiàn)點(diǎn)擊元素動(dòng)態(tài)添加類名時(shí)颤难,我們不能像JQ那樣去用(xxx.addClass(‘class’).siblings().removeClass(‘class’))實(shí)現(xiàn)配并,那我們應(yīng)該怎樣去做呢
解決方案:
1.在data里面申明一個(gè)屬性安寺,默認(rèn)值最好為數(shù)字類型创泄,并且不得大于當(dāng)前元素+所有兄弟元素的length双吆,可以默認(rèn)為0(第一個(gè)元素選中)
2.在當(dāng)前元素中添加動(dòng)態(tài)class: “:class”抑淫,使用v-bind進(jìn)行綁定
3.給元素點(diǎn)擊事件,傳入當(dāng)前元素的index卸例,把元素當(dāng)前的index賦值給data里面的申明的屬性称杨,這樣就可以點(diǎn)擊實(shí)現(xiàn)該效果
一.首先給想要添加class的元素,通過(guò)v-bind綁定一個(gè)class
<li :class="activeClass == index ? 'actived':''"
v-for="(item,index) in itemList"
:key="index"
@click="getItem(index)">
{{itme.name}}
</li>
二.在data中聲明一個(gè)變量activeClass
data() {
return {
activeClass: -1, // 0為默認(rèn)選擇第一個(gè)筷转,-1為不選擇
};
}
三.在點(diǎn)擊事件中
getItme(index) {
this.activeClass = index; // 把當(dāng)前點(diǎn)擊元素的index姑原,賦值給activeClass
}
四.在style里面寫想要的樣式就可以了
.actived {
background: #eee;
color: #1e82d2;
font-weight: bolder;
}