1

我正在尝试继承 Kendo Window。到目前为止,我的子类 Window 正在工作。然而,它打破了标准剑道窗口的关闭事件。当关闭事件被调用时,会抛出跟随错误Uncaught TypeError: Cannot read property 'options' of undefined

这是我正在尝试做的一个例子。 http://jsbin.com/IfoMOPU/6/edit?html,js,输出

我缺少什么来解决这个问题?

4

2 回答 2

1

我相信这是 Kendo UI 中的错误/设计问题。目前唯一的解决方案是替换 kendoWindow 小部件并更新“windowObject”函数,以便它也返回您的窗口子类:

function windowObject(element, name) {
    var contentElement = element.children(KWINDOWCONTENT);

    return contentElement.data("kendoWindow") || contentElement.data("kendoMyWindow") || contentElement.data("kendo" + name);
}

固定示例:http: //jsbin.com/OfIHOm/1/edit

更新: 自 Q2 2013 SP1(版本 2013.2.918)起,私有函数 windowObject 中的代码已移至方法 _object。

这意味着您可以像任何其他小部件一样子类化 kendoWindow,但是您仍然需要更新 kendoWindow 的 _object 方法:

/**
* update kendoWindow's _object method to return our new widget as well
*/
ui.Window.fn._object = function (element) {
    var content = element.children(KWINDOWCONTENT);

    return content.data("kendoWindow") || content.data("kendoMyWindow") || content.data("kendo" + this.options.name);
};

在http://jsfiddle.net/lhoeppner/qj2HL/更新示例

于 2013-10-05T20:21:56.117 回答
0

我遇到了这个问题,因为我的剑道窗口在其内容中加载了一个动态脚本。通过将此脚本移动到标题中,它解决了问题

于 2014-03-21T19:46:14.977 回答