> 文章列表 > 【事件在部分区域生效】

【事件在部分区域生效】

【事件在部分区域生效】

文章目录

  • 1. 结论
  • 2. 环境
  • 3. 背景
  • 4. 解决办法
    • 方法一:利用事件修饰符
    • 方法二:利用CSS样式

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. 背景

VuetifyCard 组件,一般由 titletext 构成,在绑定点击事件时,既希望保留 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;"
>