如何重用kendo-ui window jquery

时间:2015-06-09 17:06:36

标签: javascript jquery kendo-ui kendo-ui-window

我已经看过一些关于这个问题的帖子,但是我得到了一个实际的错误而不是它没有打开。窗口在成功函数上成功打开。但是我在关闭它之后收到错误消息,然后尝试重新打开它。

错误消息

  

未捕获的TypeError:无法读取属性'打开'未定义的

$(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 个答案:

答案 0 :(得分:1)

问题是你在去激活处理程序中调用this.destroy(),它会从DOM中删除widget html。

因此,它无法打开,因为它不存在。

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

答案 1 :(得分:1)

问题正在发生,因为您在停用期间正在销毁窗口。而不是你应该使用关闭功能

def apply_coder(text, coder):
    """
    Applies the coder to the text. Returns the encoded text.

    text: string
    coder: dict with mappings of characters to shifted characters
    returns: text after mapping coder chars to original text
    """

    coder_dict = coder
    text_list = list(text)
    for letter in text_list:
        if letter in coder_dict:
            letter = coder_dict[letter]
            print letter
    return ''.join(text_list)

请参阅sample fiddle here