v-for,v-bink,综合案例

要求:第一个li显示红色,之后点击哪个li哪个li就变成红色

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .one{
         color: red;
         
         }
         .o{
cursor: pointer;
         }
    </style>
</head>
<body>
    <div id="div">
      <ul>
          <li v-for="(items,index) in li"  :class="{one:currentIndex===index}" v-on:click="cli(index)" class="o">
                  {{items}}
          </li>
      </ul>
    </div>
</body>
</html>
<script src="vue.js"></script>
<script>
const div = new Vue({
   el:'#div',
   data:{
      li:['祝你','万事胜意','祝你','前程似锦','一帆风顺'],
      isone:true,
      currentIndex : 0
    },
      methods:{
          cli:function(index){
            this.currentIndex=index
          }
   }

})

</script>

v-for,v-bink,综合案例
v-for,v-bink,综合案例

 methods:{
          cli:function(index){
            this.currentIndex=index
          }
   }

把每个li的index传入这个函数中让currentlindex等于点击的这个li的index值

:class="{one:currentIndex===index}

这个当one:ture时就显示这个样式,one:currentIndex===index当哪个li的索引跟currentlindex所匹配就相当于true其他的九尾flash为true的就变红,为flash的就不变红

如果:class="{one:true}的话每个li都是true所以每个li都变红,每个li的索引值不同,可以利用他们不同的索引来控制他们的颜色

上一篇:没有人比我更会使用集合!对, 是dart中的集合


下一篇:java基础语法(八)