Захват события закрытия диалогового окна jQuery в функции $.Ajax done

56
8

Я построил универсальный плагин jQuery, используя jQuery Dialog для отображения сообщений. теперь это называется моей функцией jQuery $.ajax → done. Мне нужно захватить событие закрытия диалогового окна в.ajax, чтобы я мог перенаправить страницу после этого. Как я этого добиваюсь?

Функция Ajax

$('#NewFunctionNavigationForm').submit(function (e) {

e.preventDefault();

var DataToPost = JSON.stringify($('#NewFunctionNavigationForm').serializeObject());

var formURL = $(this).attr("action");

$.ajax({
type: "POST",
url: formURL,
dataType: "JSON",
contentType: "application/json; charset=utf-8",
data: DataToPost,
})
.done(function (data, textStatus, jqXHR) {

alert("Success: " + data.Response);

$(this).MyMessageDialog({
_messageBlockID: "_StatusMessage",
_messageContent: "ccc"
});
????????????? i need to capture dialog close event here??
window.location = "/SystemCore/SystemCoreHome";
})
.fail(function (jqXHR, textStatus, errorThrown) { alert("Error"); })
.always(function (jqXHROrData, textStatus, jqXHROrErrorThrown) { alert("complete"); });

});

сообщение Диалоговый плагин

function ($) {
var _messageWrap = {
_messageBlockID: "",
_messageContent: ""
};
$.fn.MyMessageDialog = function (_messageWrap) {

alert("from plugin "+_messageWrap._messageBlockID + " " + _messageWrap._messageContent);

$("#" + _messageWrap._messageBlockID).text(_messageWrap._messageContent);

if($("#"+_messageWrap._messageBlockID).length) //check if div with given ID exists
{

$("#" + _messageWrap._messageBlockID).dialog({
modal: true,
autoOpen: false,
buttons: {
Ok: function () {
$(this).dialog("close");
}
},
width: "50%",
});

//clear existing content if there are any in given Div
$("#" + _messageWrap._messageBlockID).html("");

//add content to div
$("#" + _messageWrap._messageBlockID).append(_messageWrap._messageContent);

$("#" + _messageWrap._messageBlockID).dialog("open");
}
else
{
alert("not exist");
}
};
}(jQuery));

спросил(а) 2020-04-04T02:09:28+03:00 3 месяца назад
1
Решение
94

$('div#_StatusMessage').on('dialogclose', function (event) {            
alert("dialog is close.. do your stuff here now");
});

ответил(а) 2020-04-04T02:21:57.621903+03:00 3 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема