vue之v-for中给每个item动态绑定class,动态添加元素,动态删除某个元素的实现
主要解决了在v-for时,如何给每个item添加动态的样式,即是说,鼠标滑动到某一项时,可以单独改变某一项的样式,同时添加按钮等操作。以及删除某一项的操作。<template><div class="hello"><ul>&
·
主要解决了在v-for时,如何给每个item添加动态的样式,即是说,鼠标滑动到某一项时,可以单独改变某一项的样式,同时添加按钮等操作。以及删除某一项的操作。
<template>
<div class="hello">
<ul>
<li v-for="(item, itemIndex) in test"
:key="item.id"
:class="{defaultClass: itemIndex === isActive}"
@mouseenter="onMouseEnter(itemIndex)"
@mouseleave="onMouseLeave">
{{ itemIndex+1 }} :{{ item.title }}
<button v-if="isActive === itemIndex" @click="deleteItem(itemIndex)">删除({{itemIndex+1}})</button>
</li>
</ul>
</div>
</template>
<script>
export default {
name: 'HelloWorld',
data () {
return {
test: [
{
id: 1,
title: 'title first'
},
{
id: 2,
title: 'title second'
},
{
id: 3,
title: 'title third'
}
],
isActive: ''
}
},
methods: {
onMouseEnter(index) {
this.isActive = index
},
onMouseLeave() {
this.isActive = ''
},
deleteItem(index) {
this.test.splice(index, 1)
}
},
computed: {
}
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h1, h2 {
font-weight: normal;
}
ul {
list-style-type: none;
padding: 0;
}
li {
/* display: inline-block; */
margin:10px;
}
a {
color: #42b983;
}
.defaultClass{
background-color: red;
}
</style>
更多推荐
已为社区贡献4条内容
所有评论(0)