我以这种方式使用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倍。
这实际上是第二次,即使我没有点击更新按钮进入它,
右键单击问题,点击右键点击并点击更新按钮, 我应该如何限制它进入第二次/第三次更新点击答案 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');
}
}
});