右键单击上下文菜单 - Jquery

时间:2013-07-22 05:29:13

标签: jquery jquery-plugins contextmenu

我以这种方式使用Jquery Context菜单..,

function ApplyContextMenu() {
$.contextMenu({
    selector: '.pnlAccordion h3',
    callback: function (key, options) {
        ContextMenuAction(key, options, $(this));
    },
    items: {
        "Add": { name: "Add Port", icon: "add" },
        "Edit": { name: "Edit Port", icon: "edit" },
    }

});
}
  function ContextMenuAction(key, options, $Port) {

           $(".dialogADD").dialog('open');
     if (key == "Add") {   
    $(".dialogADD").dialog({
        height: 238,
        width: 465,
        resizable: false,
        title: "Add Ports"

    });

       $(".imgbtnUpdateContext").click(function () {

           //Ajax Call Does action
            success: function (JSONData) {
                    try {
                         $(".dialogADD").dialog('close');
                        }
     }
         });

经过对hide()和show()对话的多次试验后,我终于发现问题不适用于对话框的hide()和show(),而是右键单击上下文菜单。

问题:

当我第一次点击“ADD”时,它会插入一条记录 当我第二次击中它时,它插入两次相同的记录,第三次是相同记录的3倍。

这实际上是第二次,即使我没有点击更新按钮进入它,

右键单击问题,点击右键点击并点击更新按钮, 我应该如何限制它进入第二次/第三次更新点击

1 个答案:

答案 0 :(得分:0)

使用event.preventDefault(),在被叫时,不会触发事件的默认操作。

还使用.on('click', function())处理程序

绑定您的点击事件
$(".imgbtnUpdateContext").on('click', function (e) {    
    //Ajax Call Does action
    success: function (JSONData) {
        try {
            $(".dialogADD").dialog('close');
        }
    }        
    e.preventDefault();
});

<强>更新

$(".imgbtnUpdateContext").unbind("click").click(function () {
    //Ajax Call Does action
    success: function (JSONData) {
        try {
            $(".dialogADD").dialog('close');
        }
    }
});