el-popover弹出框增加右键点击事件
源文件中找到目录element-dev =>packages =>popover=>src => main.vue,增加contextmenu事件,代码如下,修改完成后打包 npm run dist,找到你的项目中的 node_modules 包下的 element-ui 文件夹下的 lib 包,用你修改好后打包生成的 lib 包进行替换即可生效。
另外需要对浏览器自带的右键点击事件进行屏蔽,在页面元素上增加@contextmenu="doNothing"事件,doNothing方法如下
doNothing(){
window.event.returnValue=false;
return false
}
不会修改源码的可查看https://blog.csdn.net/xuanyuyao/article/details/127995697?spm=1001.2014.3001.5501
修改源码代码如下:
<el-popover
placement="right"
title="标题"
width="200"
trigger="contextmenu"
content="这是一段内容,这是一段内容,这是一段内容,这是一段内容。">
<el-button slot="reference">hover 激活</el-button>
</el-popover>
<template>
<span>
<transition :name="transition" @after-enter="handleAfterEnter" @after-leave="handleAfterLeave">
<div class="el-popover el-popper" :class="[popperClass, content && 'el-popover--plain']" ref="popper" v-show="!disabled && showPopper" :style="{ width: width + 'px' }" role="tooltip" :id="tooltipId" :aria-hidden="(disabled || !showPopper) ? 'true' : 'false'">
<div class="el-popover__title" v-if="title" v-text="title"></div>
<slot>{
{
content }}</slot>
</div>
</transition>
<span class="el-popover__reference-wrapper" ref="wrapper">
<slot name="reference"></slot>
</span>
</span>
</template>
<script>
import Popper from 'element-ui/src/utils/vue-popper';
import {
on, off } from 'element-ui/src/utils/dom';
import {
addClass, removeClass } from 'element-ui/src/utils/dom';
import {
generateId } from 'element-ui/src/utils/util';
export default {
name: 'ElPopover',
mixins: [Popper],
props: {
trigger: {
type: String,
default: 'click',
validator: value => ['click', 'focus', 'hover', 'manual', 'contextmenu'].indexOf(value) > -1
},
openDelay: {
type: Number,
default: 0
},
closeDelay