<ul class="balls red-balls">
<li v-for="num in 33" v-on:click="select" v-bind:class="{selected:isSelected}">{{num}}</li>
</ul>
能否不操纵DOM,点击单个li后改变其样式。而不是所有li的样式都改变
需求是这样的,点击红球或者蓝球后改变样式。数据层比较好处理,每次点击将li里的值push到一个数组里。但是怎么在视图上体现出来?
<ul class="balls red-balls">
<li v-for="num in 33" v-on:click="select" v-bind:class="{selected:isSelected}">{{num}}</li>
</ul>
能否不操纵DOM,点击单个li后改变其样式。而不是所有li的样式都改变
需求是这样的,点击红球或者蓝球后改变样式。数据层比较好处理,每次点击将li里的值push到一个数组里。但是怎么在视图上体现出来?
用css 就好了,完全不用切换class,
<ul>
<li v-for="item in list">
<input type="checkbox" name="cloose">
<span> {{ item }} </span>
</li>
</ul>
<script>
new Vue({
el:"app",
data:{
list: [1,2,3,4,5,6,7,8,9,1,2,34,4,5,67,8,9]
}
})
</script>
<style>
li{
width: 35px;height: 35px; border: 1px solid; border-radius: 50%; position: relative;overflow:hidden;
}
span{
display: block;width: 100%;height: 100%;text-align: center;line-height: 35px;background: #fff;color: #333;
}
input{
position: absolute;top: 0;left: 0;width: 100%;height: 100%;margin: 0;z-index: 9;opacity: 0;
};
input:checked + span{
background: red;color: #fff;
}
</style>
不明白题主所说的不操作DOM是什么含义?是不使用类似jQuery
操作DOM的方式吗,还是说连click
事件都不绑定?
先说说我的想法:
在所绑定的select
事件里面传入一个index
,写法类似v-on:click="select($index)"
.
设置isSelected
为一个数组,通过内部属性的true
或者false
来判断是否添加selected
类名,写法类似v-bind:class="{selected:isSelected[$index]}"
抛砖引玉~
6 回答2.9k 阅读✓ 已解决
6 回答2.3k 阅读
5 回答6.3k 阅读✓ 已解决
2 回答2k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
2 回答958 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
首先 应该 是把
红球 篮球 的 数字 设置成 vue 对象的 data
如 在 created() 里初始化
在渲染的时候
在 methods 里的
大概是这样 , 不记得了, 好久没写 vue 了