在我的工作完成后,我需要销毁剑道窗口。 只需单击一下按钮,便会打开Kendo窗口,并在其工作完成时销毁。
但是现在我有一个问题,一旦按钮被销毁,我无法再次打开该窗口。
我的Kendo窗口代码为:
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();
我该如何实现?
一旦窗口被销毁,我可以重新初始化它吗?
答案 0 :(得分:2)
当Kendo Window小部件被销毁时,它将从DOM中删除其HTML元素,包括从中创建它的根元素。这就是为什么您无法再次打开窗口的原因。使用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上添加一个新元素,在显示它之前将其变成一个窗口小部件。可以安全地销毁,并且此过程随后会重复多次。
<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>
由于您说需要销毁窗户,因此选择方法2是可行的;我建议使用kendo模板(如上所示)最容易实现加载新的DOM元素。