KendoWindow 在第一次打开时可以关闭,但在第二次打开时不能
KendoWindow can close when its first opened, but not when its open a second time
我遇到了一些奇怪的问题,在过去的几个小时里我一直在努力修复它,并一直在寻找答案,但我唯一找到的是相反的结果。我有一个 Kendo Window 会在我第一次打开按钮时关闭它,但是当我重新打开 window 我的按钮点击不会将其关闭。我所看到的每个地方都有相反的问题。
这是我的 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 工具栏,可以打开 window
template: "<button type='button' onClick='CustomerPopupEditor()' class='btn btn-warning'><span class='glyphicon glyphicon-edit'></span> Edit</button>  "
这是我在单击保存时用来关闭 window 的代码
function CloseTheWindow() {
$("#window").data("kendoWindow").close();
}
所以对于我来说,我不明白为什么我可以让它在第一次打开而不是第二次打开时关闭。
您应该使用 $("#window").data("kendoWindow").destroy();
而不是 $("#window").empty();
这样 kendo 小部件就被破坏了。否则,您只需清理 html 个元素。
参考方法Destroy Widgets
尽管名称如此,close 函数实际上会隐藏 window,但它将保留为 DOM 元素。所以基本上,当您第二次创建 window 时,您的代码将在 DOM 中添加第二个 "#window
元素,并且它还会将第一个 #window
初始化为 kendoWindow 而它已经是 kendo Window.
所以基本上,您需要做的是调用销毁函数而不是关闭函数:
function CloseTheWindow() {
$("#window").data("kendoWindow").destroy();
}
我遇到了一些奇怪的问题,在过去的几个小时里我一直在努力修复它,并一直在寻找答案,但我唯一找到的是相反的结果。我有一个 Kendo Window 会在我第一次打开按钮时关闭它,但是当我重新打开 window 我的按钮点击不会将其关闭。我所看到的每个地方都有相反的问题。 这是我的 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 工具栏,可以打开 window
template: "<button type='button' onClick='CustomerPopupEditor()' class='btn btn-warning'><span class='glyphicon glyphicon-edit'></span> Edit</button>  "
这是我在单击保存时用来关闭 window 的代码
function CloseTheWindow() {
$("#window").data("kendoWindow").close();
}
所以对于我来说,我不明白为什么我可以让它在第一次打开而不是第二次打开时关闭。
您应该使用 $("#window").data("kendoWindow").destroy();
而不是 $("#window").empty();
这样 kendo 小部件就被破坏了。否则,您只需清理 html 个元素。
参考方法Destroy Widgets
尽管名称如此,close 函数实际上会隐藏 window,但它将保留为 DOM 元素。所以基本上,当您第二次创建 window 时,您的代码将在 DOM 中添加第二个 "#window
元素,并且它还会将第一个 #window
初始化为 kendoWindow 而它已经是 kendo Window.
所以基本上,您需要做的是调用销毁函数而不是关闭函数:
function CloseTheWindow() {
$("#window").data("kendoWindow").destroy();
}