javascript - 在 ajax 请求上启用 jQuery contextMenu 项

标签 javascript jquery-plugins contextmenu jquery

我正在尝试更新 contextmenu如果 ajax 请求改变了我的 div 内容。

我的意思是我有一个这样的 div :

<div id="" class="message" data-options='{"update":"YES", "delete":"NO">
</div>

和上下文菜单 jquery 部分(这只在主体加载时发生一次):

$.contextMenu({
        selector: '.message', 
        trigger: 'left',
        callback: function(key, options) {
            var m = "clicked: " + key;
            window.console && console.log(m) || alert(m); 
        },
        items: {
            "update": {
                name: "Update",
                disabled: function(key, opt) { 
                    return (this.data("options").update === "NO")
                },
            },
            "delete": {
                name: "Delete", 
                 disabled: function(key, opt) { 
                    return (this.data("options").delete=== "NO")
                }
           //etc. rest of the code

我希望在发生某些 ajax 请求或以某种方式禁用/启用项目时重新创建它

所以现在发生了一些 ajax 请求,成功后我正在尝试更新 div.message data-option 因为我虽然启用/禁用这样的按钮:

In ajax.success function :
- disable or enable menu items 

--------其实--------简化了

实际上这个问题/答案与我当前的问题非常相似:

Disable and enable jQuery context menu

我想在单击某些按钮时启用/禁用 contextMenu 项,如果我能够在这个虚拟示例中做到这一点,我认为我也可以处理 ajax 请求。

最佳答案

我使用 build 选项来添加新项目,你可以看到你可以在这里随心所欲地处理项目:http://jsfiddle.net/oceog/Tvv4P/1/

HTML:

<div class="context-menu-one box menu-1">
    <strong>right click me</strong>
</div>

<button id="add"> Add item</button>
<button id="disable_cut"> Disable cut</button>
<button id="enable_cut"> enable cut</button>
​

JS:

$.contextMenu({
    selector: '.context-menu-one',
    build: function($trigger, e) {
        console.log(e);
        return {
            callback: function(key, options) {
                var m = "clicked: " + key;
                console.log(m);
                //window.console && console.log(m) || alert(m); 
            },
            items: items
        };
    }
});
var items = {
    "edit": {
        name: "Edit",
        icon: "edit"
    },
    "cut": {
        name: "Cut",
        icon: "cut"
    },
    "copy": {
        name: "Copy",
        icon: "copy"
    },
    "paste": {
        name: "Paste",
        icon: "paste"
    },
    "delete": {
        name: "Delete",
        icon: "delete"
    },
    "sep1": "---------",
    "quit": {
        name: "Quit",
        icon: "quit"
    }};
var newitemN=0;
$('#add').click(function() {
            var newitem={};
        newitem['newitem_'+newitemN]={
            name: 'new item #'+newitemN,
            icon: "copy"
        };
   newitemN++;
   $.extend(items,newitem);
});

$('#disable_cut').click(function() {
    items.cut.disabled=true;
});

$('#enable_cut').click(function() {
    items.cut.disabled=false;
});

关于javascript - 在 ajax 请求上启用 jQuery contextMenu 项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12938805/

相关文章:

javascript - 如何读取具有部分选定子节点的父节点

javascript - 有什么方法可以跟踪 iframe 的 designMode 中的选择范围吗?

Javascript 和文件上传无法按预期使用 click()

javascript - jQuery : Mask does not erase

jquery - 最兼容的 JQuery Lightbox 插件,适用于所有当前浏览器?

javascript - Cufon 元素在 IE 上的褪色问题

javascript - jQuery 如何在删除列表中的 1 时自动调整数字列表?

javascript - 将上下文菜单 (context.js) 附加到 cytoscape.js 中的节点

C# 鼠标右键单击和控制焦点

python - 添加带有多个小部件链接的右键单击上下文菜单?