使用JQuery的动态上下文菜单

Dynamic Context Menus using JQuery

本文关键字:上下文 菜单 动态 JQuery 使用      更新时间:2023-09-26

创建动态上下文菜单

这是上下文菜单的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。

提前感谢

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

   options.$selected.text()