JQuery (это). Удаление выполняется до нажатия кнопки - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть код ниже, который создает диалоговое окно с 2 кнопками «Удалить» и «Отмена». Проблема в том, что tab.remove () выполняется при вызове функции deleteDashboard. Но он должен быть выполнен после нажатия кнопки «Удалить» в диалоговом окне. Это нормально работало в jquery 1.4. Теперь я обновил его до jquery 1.9.1, и он показывает другое поведение. Моя версия jquery.ui - 1.8.

   var deleteDashboard = function(id, dash) 
          {
        var totalTabs = dash.find('ul.ui-tabs-nav:first 
                  li.tab').length;



        jQuery(opts.deleteDialog).dialog({
            bgiframe: true,
            resizable: false,
            height: 180,
            modal: true,
            overlay: {
                backgroundColor: '#000',
                opacity: 0.5
            },
            buttons: {
                Delete: function() {
                    var dlg = jQuery(this);
                    dlg.dialog('destroy');
                    jQuery.ajax({
                        url: opts.url + "/Deletesomething",
                        data: "{ Id: " + id + " }",
                        dataType: "json",
                        type: "POST",
                        contentType: "application/json; charset=utf-8",
                        success: function(data) {
                            var tab = jQuery("li#id" + id);
                            var newTabId = data.d;
                            tab.remove();

                        }
                    });
                },
                Cancel: function() {
                    jQuery(this).dialog('destroy');
                }
            }
        });
    };
...