扩展kendo窗口会破坏kendoWindow

时间:2013-09-30 14:54:22

标签: javascript kendo-ui

我正在尝试将Kendo Window子类化。到目前为止,我的子类窗口正在工作。但是,它打破了标准剑道窗口的关闭事件。调用close事件时,将引发跟随错误Uncaught TypeError: Cannot read property 'options' of undefined

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

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

2 个答案:

答案 0 :(得分: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

<强>更新 自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/

的更新示例

答案 1 :(得分:0)

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