3

当我在手风琴容器下动态创建两个手风琴容器时,我遇到了这样的错误。

当我创建任何这些单个手风琴容器而不是同时创建两个容器时,将不会发生该错误。

错误 :

无法读取 AccordionContainer.js 上未定义的属性“h”

我通过将这些行添加到工具包文件 dojo-toolkit\dijit\layout\AccordionContainer.js 暂时解决了这个问题

Line 91: + if(this._contentBox) 
Line 92:    this._verticalSpace=_34.h-_35-_2f.h-_30.h-_32.h-_33.h-_2d._buttonWidget.getTitleHeight(); 
Line 93: + if(this._contentBox) 
Line 94:    this._containerContentBox={h:this._verticalSpace,w:this._contentBox.w-_2f.w-_30.w-_32.w- _33.w}; 

Accordion Widget 创建代码结构是

define("test/project", [ 
        "dojo/_base/declare", 
        "dijit/_Widget", 
        "dijit/layout/AccordionContainer"], 
    function(declare, _Widget, AccordionContainer) { 
        return declare([_Widget],{ 
                         postCreate: function() { 
                                var new_acc = new AccordionContainer({ 
                                        id: "new_acc", 
                                        title: "Approval ("+this.count+")" 
                                }); 

                               this.parentId.addChild(new_acc); 
                        } 
        });     
}); 

有什么想法可以解决这个问题吗?

提前致谢...

4

2 回答 2

3

我面临同样的问题,但我想通了。当您尝试在 aContainer.startup() 之后在手风琴中创建另一个孩子时;方法,它将生成相同的错误消息。启动方法启动手风琴,它将动态地将高度和宽度应用到该手风琴,如果您在创建手风琴后再次为其创建一个孩子,它将引发错误“无法读取 AccordionContainer.js 上未定义的属性 'h'”

      aContainer = new AccordionContainer({ style: "height: 300px" },acdic);
        aContainer.addChild(new ContentPane({
            title: "This is a content pane",
            content: "Hi!"
        }));

        aContainer.addChild(new ContentPane({
            title: "This is as well",
            content: "Hi how are you?",
            id: "pane1"
        }));
        aContainer.startup();            
        aContainer.addChild(new ContentPane({
            title: "This too",
            content: "Hello im fine.. thnx"
        }));
于 2016-01-19T07:24:49.070 回答
0

此问题的一种解决方案是首先将子项添加到 AccordianContainer,然后将 AccordianContainer 添加到父项。

于 2015-07-21T23:17:33.540 回答