Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Vue中更改特定复选框标签class@change?_Javascript_Css_Vue.js - Fatal编程技术网

Javascript 如何在Vue中更改特定复选框标签class@change?

Javascript 如何在Vue中更改特定复选框标签class@change?,javascript,css,vue.js,Javascript,Css,Vue.js,背景:我有一个绑定到名称数组的复选框列表。单击复选框后,我将尝试更改特定名称的类 问题:单击复选框后,它会更改所有名称的类,而不是附加到复选框的特定名称 问题之二: HTML Css 将available属性移入每个name元素,并切换模板中的name.available。您甚至可以在复选框上使用v-model const names=[{'name':'Jerry'},{'name':'Eddie'},{'name':'Kerry'},{'name':'Jane'}] const app=

背景:我有一个绑定到名称数组的复选框列表。单击复选框后,我将尝试更改特定名称的类

问题:单击复选框后,它会更改所有名称的类,而不是附加到复选框的特定名称

问题之二:

HTML

Css

将available属性移入每个name元素,并切换模板中的name.available。您甚至可以在复选框上使用v-model

const names=[{'name':'Jerry'},{'name':'Eddie'},{'name':'Kerry'},{'name':'Jane'}] const app=新的Vue{ el:“应用程序”, 数据:=>{ name:names.mapname=>{…name,可用:false} } } .可用{ 文字装饰:线条贯通; } {{name.name} 将available属性移入每个name元素,并切换模板中的name.available。您甚至可以在复选框上使用v-model

const names=[{'name':'Jerry'},{'name':'Eddie'},{'name':'Kerry'},{'name':'Jane'}] const app=新的Vue{ el:“应用程序”, 数据:=>{ name:names.mapname=>{…name,可用:false} } } .可用{ 文字装饰:线条贯通; } {{name.name}
将可用变量添加到每个名称对象,并使用方法更新可用属性:

var app = new Vue({
  el: '#app',
  data: {
    names: [
      {'name':'Jerry', 'available': false},
      {'name':'Eddie', 'available': false},
      {'name':'Kerry', 'available': false},
      {'name':'Jane', 'available': false}
     ]
  },
  methods: {
    updateAvailable(index) {
      // Update the available property on the specific object with its index
      this.names[index].available = !this.names[index].available
    }
  }
})
然后在模板中,调用updateAvailable方法:

<div id="app">
<ul>
 <li v-for="(name, index) in names" :key="index">
   <input @click="updateAvailable(index)" type="checkbox">  
   <label :class="{available: name.available}" >{{name.name}}</label>
  </li>
</ul> 
</div>

将可用变量添加到每个名称对象,并使用方法更新可用属性:

var app = new Vue({
  el: '#app',
  data: {
    names: [
      {'name':'Jerry', 'available': false},
      {'name':'Eddie', 'available': false},
      {'name':'Kerry', 'available': false},
      {'name':'Jane', 'available': false}
     ]
  },
  methods: {
    updateAvailable(index) {
      // Update the available property on the specific object with its index
      this.names[index].available = !this.names[index].available
    }
  }
})
然后在模板中,调用updateAvailable方法:

<div id="app">
<ul>
 <li v-for="(name, index) in names" :key="index">
   <input @click="updateAvailable(index)" type="checkbox">  
   <label :class="{available: name.available}" >{{name.name}}</label>
  </li>
</ul> 
</div>

您需要跟踪每个名称的可用状态。您需要跟踪每个名称的可用状态。为什么不将名称传递到updateAvailable方法中?那么你就不需要通过index@Phil你赢了我一拳。当传递名称为时不起作用。我在想原因myself@EddieWeldon该方法需要成为updateAvailablename{name.available=!name.available},但除此之外,它应该完全有效。要更新name.available属性而不使用元素的索引,可以在@click事件中直接传递name对象,并将其可用属性更新为@EddieWeldon explain。为什么不将名称传递到updateAvailable方法中?那么你就不需要通过index@Phil你赢了我一拳。当传递名称为时不起作用。我在想原因myself@EddieWeldon该方法需要成为updateAvailablename{name.available=!name.available},但除此之外,它应该完全有效。要更新name.available属性而不使用元素的索引,可以在@click事件中直接传递name对象,并将其可用道具更新为@EddieWeldon explain。
<div id="app">
<ul>
 <li v-for="(name, index) in names" :key="index">
   <input @click="updateAvailable(index)" type="checkbox">  
   <label :class="{available: name.available}" >{{name.name}}</label>
  </li>
</ul> 
</div>