左键单击jQUery上下文菜单

时间:2011-01-18 14:36:25

标签: jquery contextmenu

我正在使用jQuery context menu plugin by Chris Domigan来应用上下文菜单。这是它的工作原理:

$('#contacts tbody tr').contextMenu('myMenu1', {
    bindings: {
        'copy': function(t) {
             alert('Trigger was '+t.id+'\nAction was Copy');
         },

        'delete': function(t) {
             alert('Trigger was '+t.id+'\nAction was Delete');
        }
    },             
});

现在我希望左键单击而不是右键单击此上下文菜单。我在文档中找不到选项。任何想法如何做到这一点?我是否必须修改来源?

5 个答案:

答案 0 :(得分:10)

我知道它已经过时了,但无论如何我都会回答它;)

如果要在左键单击时调用ContextMenu,只需更改行:

$(this).bind('contextmenu', function(e) {

进入这个:

$(this).bind('click', function(e) {

但是如果你想捕获更多的事件来显示ContextMenu,你可以根据jQuery .bind()引用在空格键之后添加事件名称。

例如,如果您想在左右点击上显示菜单,只需将该行更改为:

$(this).bind('contextmenu click', function(e) {

答案 1 :(得分:3)

看起来您需要更改代码。您需要更改此行:

 $(this).bind('contextmenu', function(e) {

进入这个

 $(this).bind('click', function(e) {

答案 2 :(得分:2)

作为源头上的标题

  

ContextMenu - 右键单击上下文菜单

的jQuery插件

同样在文档中没有关于如何更改点击类型的信息。我认为你唯一能做的就是扩展代码以使用基本的“click()”;)

答案 3 :(得分:1)

Matthew Manela,谢谢你的片段(此时花了好几个小时)

另外,在我的项目中,我想支持右键和左键单击。 (也许有人需要那个) 为此,您需要将代码更改为:

$(this).bind('click contextmenu', function(e) {

答案 4 :(得分:1)

我知道这对我来说太迟了。

新的contextjs插件使用'on'而不是bind,因为'on'可以像这样定义选择器:

$(document)on('contextmenu','selector',function(e){

我用它来定义我的'左'或'右':

if(type === 'right'){
    $(document).on('contextmenu', selector, function (e) {
    ....}
else{
    $(document).on('click', selector, function (e) {
    ....}