Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.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.js在不影响其他元素的情况下打开/关闭某个元素的类的最简单方法是什么?_Javascript_Jquery_Vue.js - Fatal编程技术网

Javascript 使用Vue.js在不影响其他元素的情况下打开/关闭某个元素的类的最简单方法是什么?

Javascript 使用Vue.js在不影响其他元素的情况下打开/关闭某个元素的类的最简单方法是什么?,javascript,jquery,vue.js,Javascript,Jquery,Vue.js,我已经看到了几个在Vue.js中切换类的示例,如下所示: newvue({ el:“应用程序”, 数据:{ isActive:错误 } }); .demo{ 宽度:100px; 高度:100px; 背景色:红色; 显示:内联块; } .主动{ 边框:#000个实心3px; } 您可以使用如下java脚本: newvue({ el:“应用程序”, 方法:{ 设置活动(事件){ event.target.classList.toggle(“活动”); } } }); .demo{ 宽度:100p

我已经看到了几个在Vue.js中切换类的示例,如下所示:

newvue({
el:“应用程序”,
数据:{
isActive:错误
}
});
.demo{
宽度:100px;
高度:100px;
背景色:红色;
显示:内联块;
}
.主动{
边框:#000个实心3px;
}

您可以使用如下java脚本:

newvue({
el:“应用程序”,
方法:{
设置活动(事件){
event.target.classList.toggle(“活动”);
}
}
});
.demo{
宽度:100px;
高度:100px;
背景色:红色;
显示:内联块;
}
.主动{
边框:#000个实心3px;
}

您可以使用如下java脚本:

newvue({
el:“应用程序”,
方法:{
设置活动(事件){
event.target.classList.toggle(“活动”);
}
}
});
.demo{
宽度:100px;
高度:100px;
背景色:红色;
显示:内联块;
}
.主动{
边框:#000个实心3px;
}

我知道使用数据属性,但这是强制性的吗

newvue({
el:“应用程序”,
数据:{},
方法:{
切换名称:函数(事件){
event.target.classList.toggle('active');
}
}  
});
.demo{
宽度:100px;
高度:100px;
背景色:红色;
显示:内联块;
}
.主动{
边框:#000个实心3px;
}

我知道使用数据属性,但这是强制性的吗

newvue({
el:“应用程序”,
数据:{},
方法:{
切换名称:函数(事件){
event.target.classList.toggle('active');
}
}  
});
.demo{
宽度:100px;
高度:100px;
背景色:红色;
显示:内联块;
}
.主动{
边框:#000个实心3px;
}

问题在于,通过将父属性绑定到每个实例,它们共享父属性的状态,而不再表示自己的状态。一种“vue-y”解决方案是通过单个属性或属性数组为每个实例创建唯一的isActive状态

newvue({
el:“应用程序”,
数据:{
I活动1:错误,
isActive2:错误,
isActive3:错误,
}
});
.demo{
宽度:100px;
高度:100px;
背景色:红色;
显示:内联块;
}
.主动{
边框:#000个实心3px;
}

问题在于,通过将父属性绑定到每个实例,它们共享父属性的状态,而不再表示自己的状态。一种“vue-y”解决方案是通过单个属性或属性数组为每个实例创建唯一的isActive状态

newvue({
el:“应用程序”,
数据:{
I活动1:错误,
isActive2:错误,
isActive3:错误,
}
});
.demo{
宽度:100px;
高度:100px;
背景色:红色;
显示:内联块;
}
.主动{
边框:#000个实心3px;
}


这是一个很好的答案,完全正确。我也考虑过这一点,但在我发布这个问题的特殊案例中,我处理的是动态数据生成列表项,似乎“vue-y”解决方案不起作用,因为数据可以更改。看来我最好还是用vanilla JS来切换类。谢谢你的回答!不客气。请记住,对于组件,您可以在内部而不是外部驱动活动状态,但在这种情况下,您当然需要创建组件:)。很高兴你在vanillajs中找到了答案。这是一个很好的答案,完全正确。我也考虑过这一点,但在我发布这个问题的特殊案例中,我处理的是动态数据生成列表项,似乎“vue-y”解决方案不起作用,因为数据可以更改。看来我最好还是用vanilla JS来切换类。谢谢你的回答!不客气。请记住,对于组件,您可以在内部而不是外部驱动活动状态,但在这种情况下,您当然需要创建组件:)。很高兴你在vanillajs中找到了答案。