【问题标题】:Dojo : Cannot read property 'h' of undefined on AccordionContainer.js?Dojo:无法读取 AccordionContainer.js 上未定义的属性“h”?
【发布时间】:2012-07-27 10:38:13
【问题描述】:

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

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

错误:

无法读取 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); 
                        } 
        });     
}); 

有解决这个问题的办法吗?

提前谢谢...

【问题讨论】:

    标签: javascript dojo accordion


    【解决方案1】:

    我面临同样的问题,但我想通了。当您尝试在 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"
            }));
    

    【讨论】:

      【解决方案2】:

      解决此问题的一个方法是首先将子级添加到 AccordianContainer,然后然后将 AccordianContainer 添加到父级。

      【讨论】:

        猜你喜欢
        • 2014-05-20
        • 1970-01-01
        • 2020-04-06
        • 2020-10-30
        • 2019-10-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多