Как повторно использовать кендо-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.

Следовательно, он не может открыться, потому что его не существует.

http://docs.telerik.com/kendo-ui/api/javascript/ui/window

Другие вопросы по тегам