【问题标题】:Onclick of checkbox how to add straight line in Vuejs?Onclick复选框如何在Vuejs中添加直线?
【发布时间】:2022-01-13 23:23:50
【问题描述】:

<script>
export default {
  name: 'App',
  data() {
    return {
      getQuestionAnswers: [
        {
          name: 'foo',
          checked: false,
          status: 'good'
        },
        {
          name: 'bar',
          checked: false,
          status: 'worst'
        },
        {
          name: 'baz',
          checked: false,
          status: 'good'
        },
        {
          name: 'df',
          checked: false,
          status: 'bad'
        },
        {
          name: 'apple',
          checked: false,
          status: 'worst'
        }
      ]
    }
  }
}
</script>


//ListTwo.vue


<script>
export default {
  name: 'App',
  data() {
    return {
      getQuestionAnswers: [
        {
          name: 'vall',
          checked: false,
          status: 'good'
        },
        {
          name: 'bara',
          checked: false,
          status: 'bad'
        },
        {
          name: 'ssss',
          checked: false,
          status: 'bad'
        },
        {
          name: 'ba',
          checked: false,
          status: 'worst'
        },
        {
          name: 'df',
          checked: false,
          status: 'good'
        },
        {
          name: 'ae',
          checked: false,
          status: 'good'
        },
        {
          name: 'amm',
          checked: false,
          status: 'worst'
        }
      ]
    }
  }
}
</script>
<template>
  <div id="app">
    <div
      class="bcom"
      v-for="(group, index) in getQuestionAnswers"
      :key="index + group.name"
      :group="group"
    >
      <div :class="['container1', { red: group.name === 'bar' }]">
        <input type="checkbox" v-model="group.checked" />
        {{ group.name }}
      </div>
      <div class="container2">
        <div class="h-line" v-if="group.checked">{{ group.status }}</div>
      </div>
    </div>
  </div>
</template>

正如您在上面提供的代码的输出中看到的那样,我有两个部分,一个是左,一个是右。两者都来自不同的组件,两者的数据也不同。

当从左侧点击“foo”时,我可以匹配右侧的内容状态吗?和画线(条件是这样的,无论状态好画线)是不是多重也可以。

【问题讨论】:

    标签: javascript vue.js animation canvas


    【解决方案1】:

    我已经修改了类名和样式。还为输入字段添加了v-model。请检查以下工作代码

    new Vue({
      el: "#app",
      
      data: {
        getQuestionAnswers: [
            {
            name: 'foo',
            checked: false
          },
          {
            name: 'bar',
            checked: false
          },
          {
            name: 'baz',
            checked: false
          }
        ]
      }
    })
    body {
      background: #20262E;
      padding: 20px;
      font-family: Helvetica;
    }
    
    #app {
      background: #fff;
      border-radius: 4px;
      padding: 20px;
      transition: all 0.2s;
      width:100%
    }
    
    .red {
      color: red;
    }
    .bcom {
       width: 100%;
       display: flex;
    }
    .container1 {
       width: 50px;
     }
     .container2 {
       width: calc(100% - 105px);
       padding: 8px 0;
       height: 30px;
       box-sizing: border-box;
      }
     .h-line {
      height: 1px;
      margin-bottom: 18px;
      width: 100%;
      background-color: black;
     }
    .container3{
      margin-left: 5px;
      width: 50px;
    }
    
    .point {
      width: 6px;
      height: 6px;
      background: tomato;
      border-radius: 3px;
      transition: width 1s ease;
    }
    
    .point:hover {
      width: 200px;
    }
    <script src="https://cdn.jsdelivr.net/npm/vue"></script>
    <div id="app">
     <div class="bcom"
        v-for="(group, index) in getQuestionAnswers"
        :key="index + group.name"
        :group="group"
      >
      <div :class="['container1',{ 'red': group.name === 'bar' }]">
       <input type="checkbox" v-model="group.checked"/>
        {{ group.name }}
      </div>
      <div class="container2">
       <div class="h-line" v-if="group.checked"></div>
      </div>
      <div :class="['container3',{ 'red': group.name === 'bar' }]">
      <input type="checkbox" v-model="group.checked"/> 
        {{ group.name }}
      </div>
      </div>
      <div class="point"></div>
    </div>

    【讨论】:

    • 我已经修改了代码并将其放入一个容器bcom。您现在可以查看编辑后的答案
    • @Sundar 我可以知道您为什么不接受答案。还有什么我可以帮你的吗?
    • 如您所见,我正在迭代相同的数组,因此两个复选框都将具有相同的标签。那么为什么我们需要一个条件呢?
    • 您确实将此代码框添加到了 qsn 并且没有更新 qsn。那么人们如何知道确切的要求
    • 请在 qsn 中添加更改或至少添加代码框链接!
    猜你喜欢
    • 1970-01-01
    • 2020-11-26
    • 2013-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-07
    • 2016-12-17
    • 1970-01-01
    相关资源
    最近更新 更多