html:
js:
css:
延伸拓展:
同样道理的,点击父级,改变对应子集的class,要如何做呢~
html:
注意:由于是循环,所以在最外层要套个<div>
js:
在vue中当我们要实现点击元素动态添加类名时,我们不能像JQ那样去用(xxx.addClass(‘class’).siblings().removeClass(‘class’))实现,那我们应该怎样去做呢
解决方案:
1.在data里面申明一个属性,默认值最好为数字类型,并且不得大于当前元素+所有兄弟元素的length,可以默认为0(第一个元素选中)
2.在当前元素中添加动态class: “:class”,使用v-bind进行绑定
3.给元素点击事件,传入当前元素的index,把元素当前的index赋值给data里面的申明的属性,这样就可以点击实现该效果
一.首先给想要添加class的元素,通过v-bind绑定一个class
二.在data中声明一个变量activeClass
三.在点击事件中
四.在style里面写想要的样式就可以了
vue中在一个数组中,通过循环添加一个新属性,添加后数据变了,属性没有改变。这是为什么呢?
这里唯一的例外是使用Object.freeze(),这会阻止修改现有的属性,也意味着响应系统无法再追踪变化。以下是一些具体的分析:
Vue不允许在已经创建的实例上动态添加新的根级响应式属性。然而它可以使用 Vue.set(obj,key,value) 方法将响应式属性添加到嵌套对象上:
还可以使用vm.$set实例方法,这也是全局Vue.set方法的别名。
有时你想向一个已有对象添加多个属性,例如使用 Object.assign() 或 _.extend() 方法来添加属性。但是,这样添加到对象上的新属性不会触发更新。在这种情况下可以创建一个新的对象,让它包含原对象的属性和新的属性:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)