默认的样式
当我点击时,
,
再次点击时
我本来的思路是,判断里面的如果arrowUp如果不为空,说明被点击过,说明点击的就不是同一个元素,然后将数据初始化,后来发现,vue数据的双向绑定,其实这步初始化是无用的。求大神指教
for(var i = 0; i < this.arrowArray.length; i++) {
if(i != this.arrowArray[index].index && this.arrowArray[index].arrowUp != '') {
this.arrowArray = [
{index:0,arrowUp:'',arrowDown:true},
{index:1,arrowUp:'',arrowDown:true},
{index:2,arrowUp:'',arrowDown:true},
{index:3,arrowUp:'',arrowDown:true},
{index:4,arrowUp:'',arrowDown:true},
{index:5,arrowUp:'',arrowDown:true},
{index:6,arrowUp:'',arrowDown:true},
{index:7,arrowUp:'',arrowDown:true},
];
}
}
this.arrowArray[index].arrowUp = !this.arrowArray[index].arrowDown;
this.arrowArray[index].arrowDown = !this.arrowArray[index].arrowDown;
这是其他部分的逻辑:
sortIndex有很多值
<div class="specific" :class="{ selected : sortIndex == 4 }" @click.stop="toggleSort(4)">
人流量/价格 <span :class="{'arrow-down' : !arrowArray[4].arrowUp, 'arrow-up' : sortIndex == 4 && arrowArray[4].arrowUp}"></span>
</div>
toggleSort: function(index) {
this.sortIndex = index;
for(var i = 0; i < this.arrowArray.length; i++) {
if(i != this.arrowArray[index].index && this.arrowArray[index].arrowUp != '') {
this.arrowArray = [
{index:0,arrowUp:'',arrowDown:true},
{index:1,arrowUp:'',arrowDown:true},
{index:2,arrowUp:'',arrowDown:true},
{index:3,arrowUp:'',arrowDown:true},
{index:4,arrowUp:'',arrowDown:true},
{index:5,arrowUp:'',arrowDown:true},
{index:6,arrowUp:'',arrowDown:true},
{index:7,arrowUp:'',arrowDown:true},
];
}
}
this.arrowArray[index].arrowUp = !this.arrowArray[index].arrowDown;
this.arrowArray[index].arrowDown = !this.arrowArray[index].arrowDown;
},
看起来现在有两个逻辑
1.首次点击时改变css(这里可以通过
active name
增删样式)2.反复点击改变箭头方向(绑定一个值,
true
orfalse
来决定箭头方向)——
刚才再看了一下才发现是我想岔了,原来首次点击是不改变箭头方向的
这里加个方法
不知道有没有理解错