Как повторно использовать кендо-UI Window JQuery
Я видел некоторые сообщения об этой проблеме, но я получаю фактическую ошибку вместо того, чтобы просто не открываться. окно успешно открывается в функции успеха. однако я получаю сообщение об ошибке после того, как закрываю его и затем пытаюсь открыть снова.
Сообщение об ошибке
Uncaught TypeError: Невозможно прочитать свойство 'open' из неопределенного
$(document).ready(function () {
$(".export-pdf").click(function () {
$.ajax({
url: "/Home/Save",
type: "POST",
data: { source: data },
success: function (data, textStatus, jqXHR) {
openEmailWindow();
}
});
});
});
function openEmailWindow() {
var window = $("#email");
$("#undo1")
.bind("click", function () {
window.data("kendoWindow").open();
});
if (!window.data("kendoWindow")) {
window.kendoWindow({
width: "600px",
title: "Subject Property",
actions: ["Close"],
deactivate: onDeactivate
});
}
function onDeactivate(e) {
this.destroy();
console.log("event :: deactivate");
}
}
});
Посмотреть
<span id="undo1" style="margin-left: 865px" class="export-pdf k-button">Print Pdf</span>
<div id="email"></div>
2 ответа
Решение
Проблема возникает из-за того, что вы уничтожаете окно во время деактивации. Вместо этого вы должны использовать функцию закрытия
function onDeactivate(e) {
this.close();
console.log("event :: deactivate");
}
Пожалуйста, ознакомьтесь с примером скрипта здесь
Проблема в том, что вы вызываете this.destroy() в своем обработчике деактивации, который удаляет HTML-виджет из DOM.
Следовательно, он не может открыться, потому что его не существует.