正在回答
同学你好,关于同学的疑问,解答如下:
1、通过添加class,来区分选中的是哪个li(选中的li背景颜色修改为红色)。
因为curId要与list中的每一项的id做比较(如果两者是相同的值,那么选中的就是哪一个li)。所以curId的初始值是-1,其实初始值只要不是0,1,2,都是可以的(如果是0,1,2其中一个的话,那么默认就会有一个被选中)。
2、item.id==curId是判断,如果当前的id属性与curId(索引)相等的话,返回值为true,那么就用isActive样式
this.curId = i是将点击的li的索引赋值给curId,如果curId的值与list中每一项的id相同,那么相同的哪一项就会被添加上isActive这个类名,从而改变背景颜色。

老师使用星星老师提供的代码,可以实现效果哦。如下:
初始时没有选中的项,效果如下:

点击哪一项,哪一项改变背景颜色。效果如下:
同学测试没有效果,可能是哪个地方有书写错误,可以直接复制星星老师提供的代码进行比较哦
同学如果是不理解,代码中也添加了注释,可以再理解下。这些知识后面的课程中会有讲解的,慢慢来,不要着急
如果还有其他疑问,为了高效的为同学解答,可以新建问题进行提问哦。
如果帮助到了你,欢迎采纳~祝学习愉快~
同学你好,
是需要通过索引去判断,可以在数据中加一个id,两者进行判断。老师给你举一个例子:
<template>
<div>
<ul>
<!-- 对li循环遍历,绑定点击事件,方法为change,传入参数索引 -->
<!-- 动态class中用一个对象,item.id==curId是判断,如果当前的id属性与curId(索引)相等的话,返回值为true,那么就用isActive样式 -->
<li v-for="(item,i) in list" @click="change(i)" :class="{'isActive':item.id==curId}">
{{item.name}}
</li>
</ul>
</div>
</template>
<script>
export default {
data() {
return {
list: [{
name: '38号码',
id: 0
},
{
name: '39号码',
id: 1
},
{
name: '40号码',
id: 2
}
],
// 初始化属性值为-1
curId: -1,
}
},
methods: {
// 方法对curId属性赋值当前索引
change(i) {
this.curId = i;
}
}
}
</script>
<style>
li {
list-style: none;
width: 100px;
height: 50px;
line-height: 50px;
margin-top: 10px;
background: #ddd;
}
/*激活样式为红色*/
.isActive {
background: red;
}
</style>在学习过程中要慢慢积累,尝试着去做,才会进步哦。
自己测试下,祝学习愉快!
- 参与学习 人
- 提交作业 239 份
- 解答问题 10739 个
本阶段带你深入前端开发的肌理,通过ES6基础知识和前端主流高级框架的学习,助你快速构建企业级移动webAPP应用,进入职场的终极battle
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星