Kendo Window 销毁后不再打开
Kendo Window not opening again once it is destroyed
我有一种情况需要在我的工作完成后销毁 kendo window。
Kendo window 点击按钮打开,完成后销毁。
但现在我遇到了一个问题,即一旦按钮被销毁,我就无法再次打开 window。
我的 Kendo Window 代码是:
var Snapshotwindow = $('#newWindow');
Snapshotwindow.kendoWindow({
width: "500px",
height: "267px",
resizable: false,
sortable: false,
modal: true,
draggable: false,
title: "New Window",
visible: false,
appendTo: "#AppBody",
});
Snapshotwindow.data("kendoWindow").center().open();
如何实现?
我可以在 window 销毁后重新初始化它吗?
当 kendo Window 小部件被销毁时,它会从 DOM 中删除它的 HTML 元素,包括创建它的根元素。这就是您无法再次打开 window 的原因。这让您在使用 Window 小部件时有两种基本方法:
第一次创建小部件,保存对它的引用。不要在关闭时销毁,并使用引用重新打开后续时间。
if (Snapshotwindow == null) {
Snapshotwindow = $('#newWindow').kendoWindow({
width: "500px",
height: "267px",
resizable: false,
sortable: false,
modal: true,
draggable: false,
title: "New Window",
visible: false,
appendTo: "#AppBody",
}).data("kendoWindow");
}
Snapshotwindow.center().open();
向 DOM 添加一个新元素,在显示之前将其转换为 window 小部件。可以安全地销毁,然后这个过程可以重复多次。
<script id="modal-editor-window" type="text/x-kendo-template">
<!-- your window content here -->
</script>
<script type="text/javascript">
var options = {
title: "Edit",
modal: true,
visible: false,
deactivate: function () {
this.destroy();
}
};
var mew = $.parseHTML($("#modal-editor-window").html().trim());
$("body").append(mew);
var mw = $(mew).kendoWindow(options).data("kendoWindow");
mw.center().open();
</script>
既然你说你需要摧毁window,选项2是可行的;我建议加载新的 DOM 元素可能最容易通过使用 kendo 模板(如上所示)来实现。
我有一种情况需要在我的工作完成后销毁 kendo window。 Kendo window 点击按钮打开,完成后销毁。
但现在我遇到了一个问题,即一旦按钮被销毁,我就无法再次打开 window。
我的 Kendo Window 代码是:
var Snapshotwindow = $('#newWindow');
Snapshotwindow.kendoWindow({
width: "500px",
height: "267px",
resizable: false,
sortable: false,
modal: true,
draggable: false,
title: "New Window",
visible: false,
appendTo: "#AppBody",
});
Snapshotwindow.data("kendoWindow").center().open();
如何实现?
我可以在 window 销毁后重新初始化它吗?
当 kendo Window 小部件被销毁时,它会从 DOM 中删除它的 HTML 元素,包括创建它的根元素。这就是您无法再次打开 window 的原因。这让您在使用 Window 小部件时有两种基本方法:
第一次创建小部件,保存对它的引用。不要在关闭时销毁,并使用引用重新打开后续时间。
if (Snapshotwindow == null) { Snapshotwindow = $('#newWindow').kendoWindow({ width: "500px", height: "267px", resizable: false, sortable: false, modal: true, draggable: false, title: "New Window", visible: false, appendTo: "#AppBody", }).data("kendoWindow"); } Snapshotwindow.center().open();
向 DOM 添加一个新元素,在显示之前将其转换为 window 小部件。可以安全地销毁,然后这个过程可以重复多次。
<script id="modal-editor-window" type="text/x-kendo-template"> <!-- your window content here --> </script> <script type="text/javascript"> var options = { title: "Edit", modal: true, visible: false, deactivate: function () { this.destroy(); } }; var mew = $.parseHTML($("#modal-editor-window").html().trim()); $("body").append(mew); var mw = $(mew).kendoWindow(options).data("kendoWindow"); mw.center().open(); </script>
既然你说你需要摧毁window,选项2是可行的;我建议加载新的 DOM 元素可能最容易通过使用 kendo 模板(如上所示)来实现。