<button @click="startEffect"> Start Effect</button>
<br/>
<div id="effect" class="highlight" :class="{highlight: enableHighlight}"></div>
我只需要基于数据属性enableHighlight
来应用Highlight类,但是由于某些原因,在调用startEffect
函数时该类不适用。
<script>
export default {
data() {
return {
enableHighlight: false
}
},
methods: {
startEffect: function () {
this.enableHighlight = !this.enableHighlight;
}
}
}
</script>
我已调试并确认单击按钮时enableHighlight
的值已切换并且存在CSS类。但是,单击按钮后,该类将不会应用于div。
答案 0 :(得分:0)
当拥有“正常” Vue
属性和一个动态属性时,您真的很迷惑class
。删除正常的。
<div id="effect" :class="{highlight: enableHighlight}"></div>
要使其正常工作,您需要删除function
定义中的startEffect
:
startEffect() {
this.enableHighlight = !this.enableHighlight;
}
为什么?因为this
在定义函数的不同方式上是不同的。了解有关this
here的更多信息。