【问题标题】:Disabling jQuery Contextmenu's items禁用 jQuery 上下文菜单项
【发布时间】:2011-10-27 16:13:50
【问题描述】:

首先,感谢您对我之前的问题的所有帮助。好吧,我的问题涉及 jQuery 上下文菜单。我有一个上下文菜单,它可以完美地显示所有不同的选项,但是,我需要禁用一些选项(让我们在下面的代码中说 Item B),但我没有这样做。代码如下,

我有一个名为 menuitems 的数组,它包含上下文菜单的所有元素,例如,

function createMenuItems() {
    var menuitems = {};
    menuitems['Item A'] = {
        click: function() {
            // Some Code
        }
    };
    menuitems['Item B'] = {
        click: function() {
            // Some Code
        }
    };
    menuitems['Item C'] = {
        click: function() {
            // Some Code
        }
    };

    return menuitems;
}

这个函数的调用方式如下,

menuitems = createMenuItems();

现在正在使用以下命令创建上下文菜单,

element.children("a").contextMenu("myMenu",menuitems,
    {
        disable_native_context_menu: true
    });

任何帮助将不胜感激,非常感谢并期待您的专家建议

亲切的问候

【问题讨论】:

    标签: javascript jquery contextmenu


    【解决方案1】:

    看起来你正在使用 http://code.google.com/p/youpivot/source/browse/trunk/chromeextension/include/jquery.contextmenu.js?r=46

    据我从源码判断,不支持“禁用”。您可以尝试自己添加,例如:

    menuitems['Item B'] = {
        click: function() {
            // Some Code
        },
        disabled: true
    };
    

    然后在插件文件中添加:

    if (item_options.disabled)
        menuItem.attr("disabled", "disabled");
    

    在链接提供的源代码中的第 39 行之后(我假设您的文件可能与此不同,因此您可以找到类似的位置)。

    希望这会有所帮助。

    【讨论】:

    • 我突然意识到menuItem是一个li,所以disabled什么都不做。你需要 if (item_options.disabled) { menuItem.addClass("menu-item-disabled"); } else { menuItem.appendTo(menu).bind('click', function(e) { item_options.click($(this).parent().data("invoker")); e.preventDefault(); }) ;所以你基本上在项目未被禁用的情况下移动点击绑定,并为禁用的项目添加一个类 .menu-item-disabled 你可以制作,比如 .menu-item-disabled {color: gray}
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多