0

私はこれらの方法で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() ではなく、コンテキスト メニューの右クリックにあることがわかりました。

問題:

最初に「追加」として右クリックすると、2回目に同じレコードを2回挿入し、3回目に同じレコードを3回挿入すると、1つのレコードが挿入されます。

ここで実は更新ボタンを押さなくても2回目に入るので、

問題は右クリックにあります, 右クリックのクリック数を数えて更新ボタンに入る, 2回目/3回目の更新クリックに入るのを制限するにはどうすればよいですか

4

1 に答える 1

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');
        }
    }
});
于 2013-07-22T05:34:22.370 に答える