Vue.js - 在点击事件上添加类

Posted

技术标签:

【中文标题】Vue.js - 在点击事件上添加类【英文标题】:Vue.js - Add Class on Click Event 【发布时间】:2017-08-21 09:23:44 【问题描述】:

我想在 Vue.js 中的 div 上动态切换 click 事件上的类,而不使用属性/数据。

这是我的 div

<div class="quiz-item" @click="checkAnswer(1)">

当点击这个div 时,我想添加类quiz-item--correctquiz-item--incorrect(这个逻辑将在别处处理)。我不能使用属性,因为测验中的答案太多,无法成为一种可维护/可行的方法。

有人对我如何实现此功能有任何想法吗?

【问题讨论】:

【参考方案1】:

你可以这样做:

<div class="quiz-item" @click="$event.target.classList.toggle('classname')">

您可以查看演示此功能的小提琴:Here

【讨论】:

我不认为所有浏览器都支持 classList,特别是 IE @victor 是的,IE classList 方法。但是如果你想支持这些浏览器,你可以使用变通方法,比如调用一个函数并在那里操作类。 嗯......有点工作......但遗憾的是它不适合我......现在当在这个监听器的 div 中有一个 span 或另一个 div 或其他东西。当我单击元素时,孩子会获得公开课。不是元素本身... @LarsVandeDonk 如果您在div 中嵌套了可以接收点击的元素,您可能需要将点击处理程序更改为$event.currentTarget.class...target 指的是发生事件的元素,在您的情况下可以是任何子元素,currentTarget 将指的是绑定事件处理程序的元素。希望这对您有所帮助。

以上是关于Vue.js - 在点击事件上添加类的主要内容,如果未能解决你的问题,请参考以下文章

Vue.js 使用点击事件在模态框上填充表单字段值

vue如何利用单击事件输出当前时间?

如何在 vue 上使用 eventBus 触发点击事件?

vue 的点击事件怎么获取当前点击的元素

vue.js怎样移除绑定的点击事件

如何在Vue.js中正确添加条件事件绑定?