javascript - 如何在 Vuetify v-switch 中停止传播?
问题描述
我正在使用 Vuetify,我有v-data-table
. 当我点击行时v-dialog
必须打开。我v-switch
的v-data-table
. 当我单击它开关时,我的问题就v-switch
出现了,而且还会传播并打开我的v-dialog
. 在我的代码笔中,我有三个 v-switch 单击事件的示例。
- 首先是与
@click.native.stop
。这里我成功处理了传播,但是点击事件不仅在v-switch中,而且覆盖了整个容器(示例中为红色) - 我的第二次尝试是使用
@change
. 这里的 switch 事件仅在 v-switch 切换时被激活,但是当我单击 v-switch 时,v-dialog 也会打开。所以@change
它也不能正常工作。 - 第三次尝试是 with
@change.stop
,但没有想要的结果,它与我的第二次尝试相同。
我的问题是 - 有没有办法停止传播(在我的第一个例子中没有副作用),当我点击 v-switch 只切换 switch 而不是和后面的 v-dialog 时?
解决方案
只需添加@click.native.stop
到您的<v-switch>
.
看到它工作:https ://codepen.io/andrei-gheorghiu/pen/RwWPONL
注意:要限制捕获点击的区域,您必须将.v-input--switch
sdisplay
值更改为inline-block
:
.v-input--switch {
display: inline-block;
}
而且您实际上不需要停止超过click
,因为对话框仅在单击时打开。如您所见,您可以使用Tab+Space来切换开关,并且模式未打开。
推荐阅读
- java - 防止边框对象后面的文本
- ios - 如何从 UIPageViewController 中的视图控制器返回上一个 VC 或下一个 VC?
- r - 如何在表格排序后从表格列引用中动态呈现图像
- java - 如何向数组添加新条目?
- ios - 编译到手机时出现 Xcode 错误:链接器命令失败,退出代码为 1
- 2d - 带有碰撞的简单 2D 流体模拟的概念和资源
- javascript - 如何在对象的数组中查找属性并将这些对象移动到对象中的另一个数组?
- jquery - 无法逐行读取并在python中执行操作
- c++11 - 为什么在 RangeV3 中 std::back_inserter_iterator 不是 WeaklyIncrementable?
- c# - 使用 Linq 从另一个具有匹配值的列表更新列表