Kendo ui 剑道窗户一旦被摧毁就不会再打开

Kendo ui 剑道窗户一旦被摧毁就不会再打开,kendo-ui,kendo-window,Kendo Ui,Kendo Window,我有一个情况,我需要摧毁剑道窗口一旦我的工作完成。 剑道窗口打开一个按钮点击和销毁时,其工作完成 但现在我有一个问题,我不能打开窗口再次点击按钮,一旦它被摧毁 我的剑道窗口代码是: var Snapshotwindow = $('#newWindow'); Snapshotwindow.kendoWindow({ width: "500px", height: "267px", resizab

我有一个情况,我需要摧毁剑道窗口一旦我的工作完成。 剑道窗口打开一个按钮点击和销毁时,其工作完成

但现在我有一个问题,我不能打开窗口再次点击按钮,一旦它被摧毁

我的剑道窗口代码是:

        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();
我怎样才能做到呢


销毁窗口后,我可以重新初始化它吗?

当剑道窗口小部件被销毁时,它会从DOM中删除它的HTML元素,包括创建它的根元素。这就是您无法再次打开窗口的原因。这使您在使用窗口小部件时有两种基本方法:

  • 第一次创建小部件,保存对它的引用。不要在关闭时销毁,然后使用引用重新打开后续时间

    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>
    
    
    变量选项={
    标题:“编辑”,
    莫代尔:是的,
    可见:假,
    停用:函数(){
    这个。销毁();
    }
    };
    var mew=$.parseHTML($(“#模态编辑器窗口”).html().trim());
    $(“正文”)。附加(mew);
    var mw=$(mew).kendoWindow(期权).data(“kendoWindow”);
    mw.center().open();
    

  • 既然你说你需要摧毁这个窗口,那么选择2就是最好的选择;我建议使用剑道模板(如上所示)加载新的DOM元素可能是最容易实现的。

    您还可以提供first approach.Done的示例。您只需在合理的位置声明
    Snapshotwindow
    ,并确保在用户关闭窗口时不会破坏该窗口。然后您应该能够重新运行示例1中的代码以重新打开原始窗口。