【问题标题】:Context menu right click -- Jquery上下文菜单右键单击——Jquery
【发布时间】:2013-07-22 15:47:23
【问题描述】:

我正在以这些方式使用 Jquery 上下文菜单..,

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(),而是在右键菜单上。

问题:

当我第一次点击右键“添加”时,它会插入一条记录 当我第二次点击它时,它插入了两次相同的记录,第三次插入了 3 次相同的记录。

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

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

【问题讨论】:

    标签: jquery jquery-plugins contextmenu


    【解决方案1】:

    使用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');
            }
        }
    });
    

    【讨论】:

    • @þÍńķ 尝试使用e.preventDefault(),而不是e.stopImmediatePropagation()。
    • 我不明白问题,但仍然单击它第二次给出 2 个插入......
    • @þÍńķ 可以制作小提琴吗?
    • $(".imgbtnUpdateContext").on('click', function (e) { //Ajax Call Does action success: function (JSONData) { try { $(".dialogADD").dialog('close');e.stopImmediatePropagation() } } });
    • 好的会试试..,这是实时场景..,试着做一个小提琴
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-04
    • 1970-01-01
    • 2011-01-17
    • 1970-01-01
    • 2010-12-15
    • 2017-04-22
    • 1970-01-01
    相关资源
    最近更新 更多