使用JQuery的动态上下文菜单

时间:2016-05-19 09:55:41

标签: javascript jquery html json

创建动态上下文菜单

这是上下文菜单的Html代码

<div class="simple-context-menu">Right Click Me</div>

Javascript文件如下所示

// setup:

// Install JQuery Plugin from here:
// https://github.com/swisnl/jQuery-contextMenu
// DOCS: http://swisnl.github.io/jQuery-contextMenu/

var menu1_item_names = ['item1', 'item2', 'item3'];
var menu2_item_names = ['item4', 'item5', 'item6'];

$.contextMenu({
    selector: '.test-context-menu',
    build: function($trigger, e) {
        var options = { 
          callback: function(key, options) {
            alert("Clicked on " + key + " on element " + options.$trigger.attr("id"));
            // TODO:
            // Display NAME of the menu item clicked(example: item1)
            //alert("Clicked on item:  " + JSON.stringify(options.items));                    
            return false;
          },
          // start with an empty map
          items: {
            "fold1": { 
              "name": "menu 1",
              "items": {}
            },
            "fold2": {}                  
          }
        };

        $.each(menu1_item_names, function(k, v) {
            options.items.fold1.items[k] = {
             name: v
            };
        });

        if (typeof menu2_item_names !== 'undefined' &&    menu2_item_names.length > 0) {
          options.items.fold2 = {
                                  "name": "menu 2",
                                  "items": {} 
                                }

          $.each(menu2_item_names, function(k, v) {
              options.items.fold2.items[k] = {
                name: v
              };
          });
        }

        options.items.sep1 = "---------";
        options.items.quit = {
            name: "Quit"
        };
        return options;
    }
});

注意:      当您运行它并右键单击上面的文本字段时,将出现上下文菜单

点击任何菜单项,您将看到(警告框),菜单项索引位置,例如。 0,1 2 ...

而不是点击

中的项目名称

我想看到菜单项的名称

上下文菜单的JSFiddle

先谢谢

1 个答案:

答案 0 :(得分:2)

您可以在回调函数上使用它:

   options.$selected.text()