CyberNika / v-contextmenu

🖱 ContextMenu based on Vue 3 & Vue 2
https://cybernika.github.io/v-contextmenu/
MIT License
918 stars 112 forks source link

可否获取 哪个元素 进行了右键 #60

Open ooing opened 5 years ago

ooing commented 5 years ago

期望结果

例如 对文章列表进行管理 需要知道 获取文章id才可以进行处理 请问如何 获取是哪个文章进行了右键事件

jwencode commented 4 years ago

我也需要这个功能,获取点击的数据。可否加一个传参的功能。

CyberNika commented 4 years ago

46 VContextmenu 组件上有个 contextmenu 事件,参数是触发 contextmenu 事件区域的 vnode,应该满足你们的需求

https://github.com/snokier/v-contextmenu/blob/master/docs/usage.md#vcontextmenu

jwencode commented 4 years ago

根据你说的,我看了vnode,但是在事件中无法获取到vnode的参数,可以给出参考案例吗?感谢

CyberNika commented 4 years ago

@jwencode 在这个例子中可以看到,看 console 里。 例子代码在 https://github.com/snokier/v-contextmenu/blob/master/examples/Multiple.vue#L9

sanri1993 commented 4 years ago

vnode 只能获取节点 dom 元素啊

jwencode commented 4 years ago

vnode 只能获取节点 dom 元素啊

<div class="icon" v-contextmenu:contextmenu @contextmenu.prevent="show(obj)">

可以加一个@contextmenu事件 右键点击事件 传递对象 然后间接操作

htank-wang commented 3 years ago

@contextmenu在v-contextmenu的事件后触发,想禁用容器下的某个子节点的菜单触发。

zuoyifeng commented 3 years ago

@contextmenu

弹出的里面@contextmenu回调加什么 怎么加?我是公用的右键 想根据数据判断

co2color commented 3 years ago

image image image 如图, element tree组件,鼠标右键点击某个tree节点,先执行treeRightClick(),拿到node,给this.current_tree_node。然后操作就好了

elewen commented 3 years ago
<span v-contextmenu:contextmenu  :myParams="{ a: 1 }"  value='233'>aaa</span>
<span v-contextmenu:contextmenu  :myParams="{ b: 2 }"  value='666'>bbb</span>

<v-contextmenu ref="contextmenu" theme="bright" @contextmenu="test" @show="showContextMenu"></v-contextmenu>
test (vm) {
  console.log(vm.data.attrs.myParams) // { a: 1 }
  console.log(vm.data.attrs.value) // 233
}
xiaochen0517 commented 9 months ago

在新的 3.1.1 版本中没有 contextmenu 事件,此功能需要如何实现?

zhangzq commented 5 months ago
v-contextmenu

这个可以用吗?我测试的 test 函数的参数是空的,vm是undefined呀。

zhangzq commented 5 months ago

最新的测试如下:

如果指定v-contextmenu:contextmenu的容器上添加 @contextmenu 事件,其event参数有个问题,有时候是子节点,不能保证是此容器。

如果是menu本身添加 @contextmenu ,完全不起作用。