v-contextmenujs 右键菜单点击
忙碌了一晚上的“枫师傅”用上了新插件v-contextmenujs,这个插件就按照他的文档来就行
我的使用:
<!-- 这里是demo.vue,之所以选择html是为了代码高亮 -->
<el-table-column label="操作" width="100" align="center" header-align="center">
<template slot-scope="rows">
<div class="menu" @contextmenu.prevent="onContextmenu($event,rows.row.name)" :pid="rows.row.id" :pname="rows.row.name">
<p class="menu-text">操作 <i class="el-icon-d-arrow-right"></i></p>
</div>
</template>
</el-table-column>
<script>
export default {
methods: {
onContextmenu (event, id) {
event.preventDefault()
this.$contextmenu({
items: [
{
label: '详情',
children: [
{
label: '当前页打开'
},
{
label: '新窗口打开'
}
]
},
{
label: '更新',
onclick: async () => {
}
},
{
label: '删除',
onclick: async () => {
}
}
],
event,
// x: event.clientX,
// y: event.clientY,
customClass: 'class-a',
zIndex: 3,
minWidth: 100
})
return false
},
handleScroll () {
// 销毁菜单
this.$contextmenu.destroy()
}
},
mounted () {
document.addEventListener('DOMMouseScroll', () => {
this.handleScroll()
}, false)
}
}
笔记:
- 使用.stop可以阻止事件冒泡
例如:<div class="common-box"> <div class="a" @contextmenu.prevent="onContextmenua($event,1)"> <div class="b" @contextmenu.prevent.stop="onContextmenub($event,2)"></div> </div> </div>
本文来自博客园,作者:小枫同学,除网络转载的部分,其他版权属于作者和博客园所有,未经作者或博客园许可,禁止转载、复制、重新发布完整或者部分文字、代码、图片等信息,否则将保留追究法律责任的权利(如博客侵权了您的作品,本人再次表示抱歉,请将原创地址发送至下文邮箱,核实后立刻删除。)。查阅文章的同学,由于网络爬虫严重,有些代码并不会完整贴出来或者存在bug,不过你可以发送邮件到xfstune@126.com获取新代码,记得附上文章链接