【事件在部分区域生效】
1. 结论
建议用第一种解决办法
2. 环境
项目 | 版本 |
---|---|
@vue/cli | 5.0.8 |
vue | 2.6.11 |
vuetify | 2.6.13 |
node | v14.21.3 |
npm | 6.14.18 |
浏览器 | Edge |
3. 背景
Vuetify 的 Card 组件,一般由 title 和 text 构成,在绑定点击事件时,既希望保留 Card 本身的点击水波纹效果,又希望此点击效果不在 title 部分生效,而仅仅在 text 部分生效。
4. 解决办法
前提条件,Card 本身绑定要触发的事件
<v-cardclass="card-wrapper"color="rgba(6, 20, 54, 0)"outlined@click="$emit('jump-to-page')"
>
方法一:利用事件修饰符
在 title部分绑定点击事件修饰符 stop
<v-card-titleclass="pa-1"style="height: 2vw; cursor: not-allowed;"@click.stop
>
在 text 部分绑定点击事件修饰符 prevent
<v-card-textclass="content"style="cursor: pointer;"@click.prevent
>
方法二:利用CSS样式
直接在 header 部分使用 CSS 样式 pointer-events: none;
,即可实现效果。
<v-card-titleclass="pa-1"style="height: 2vw; cursor: not-allowed; pointer-events: none;"
>