У меня есть код ниже, который создает диалоговое окно с 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');
}
}
});
};