KendoWindow可以在第一次打开时关闭,但不能在第二次打开时关闭

时间:2016-05-24 01:11:28

标签: jquery kendo-ui kendo-window

我有一些奇怪的问题正在进行中,我一直试图在过去的几个小时内修复它,并且已经找到了答案,但我找到的唯一相反的事情。我有一个Kendo Window会在第一次打开时关闭我的按钮,但当我重新打开窗口时,我的按钮点击不会将其关闭。我看到的每个地方都有相反的问题。 这是我的窗口代码

function CustomerPopupEditor() {
    $("#showCustomerEdit").append("<div id='window'></div>");
    var myWindow = $("#window").kendoWindow({
        width: "80%",
        height: "47%",
        title: "Customer",
        content: "/Customer/CustomerEditor",
        modal: true,
        actions: [
            "Close"
        ],
        close: function (e) {
            $("#window").empty();
        }
    }).data("kendoWindow");
    myWindow.center().open();
}

这是我打开窗口的kendo工具栏

template: "<button type='button' onClick='CustomerPopupEditor()' class='btn btn-warning'><span class='glyphicon glyphicon-edit'></span> Edit</button> &nbsp"

这是我单击保存时用来关闭窗口的代码

function CloseTheWindow() {
    $("#window").data("kendoWindow").close();
}

所以对于我的生活,我不明白为什么我可以在它第一次打开时关闭它而不是第二次打开它。

2 个答案:

答案 0 :(得分:1)

您应该使用$("#window").data("kendoWindow").destroy();代替$("#window").empty(); 这种方式kendo小部件是destroyd。否则,你只需清理html元素。

请参阅Destroy Widgets

的方式

答案 1 :(得分:1)

尽管有名称,close函数实际上会隐藏窗口,但它仍将作为DOM元素保留。所以基本上,当你第二次创建窗口时,你的代码会在DOM中添加第二个"#window元素,它也会将第一个#window初始化为kendoWindow,而它已经是一个kendo Window。

所以基本上,你需要做的是调用destroy函数而不是close:

function CloseTheWindow() {
    $("#window").data("kendoWindow").destroy();
}