domstyle.set不在道场工作

gan*_*raj 0 html javascript dojo

我在Dojo有一个奇怪的问题.我的domStyle.set没有按预期工作.我假设它是将样式设置为dom节点的正确方法.

这是描述dom节点的html片段.

<div class="edgePanel" data-dojo-type="dijit.layout.BorderContainer" style="display: table-cell; min-   height:70%;" data-dojo-props="region: 'center'">
      <div style="display: table; width:100%; height: 100%">
            <div style="display: table-row">
                   <div style="display: table-cell; vertical-align: middle; text-align: center">
                         <div id="da" name="da" style="background-color: #FFFFFF;width:300px;height:250px; display: inline-block; vertical-align: middle;">
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
Run Code Online (Sandbox Code Playgroud)

da节点是绘图区域节点.我试图用这个javascript文件中的代码更改绘图区域节点的大小.我已经设置了一个调试点,它进入了domStyle.set位置.所以,这不是我绝对愚蠢的情况:)

define(['dojo/_base/declare','../util/XMLLoader',"dojo/query",'dojo/_base/lang',
    'dijit/registry','dojo/on',"dojo/dom-style", 'dojo/domReady!'], function (declare,XMLLoader,query,lang,registry,on,domStyle) {

return declare(null, {
    setup : function(){
        var loader = new XMLLoader();
        loader.load("example.xml","editor");
        this.resizeDrawingArea();
        var selector = query("#sizeSelect")[0];
        on(selector,"change",lang.hitch(this,"resizeDrawingArea"));
        //
    },
    resizeDrawingArea : function (evt){
        var drawArea = query("#da");
        var selector = query("#sizeSelect")[0];
        switch(selector.value)
        {
            case "MPU":
                //drawArea.style("width","300px","height","250px");
                domStyle.set(drawArea,"width","300px");
                break;
            case "LDR":
                domStyle.set(drawArea,"width","728px");
                break;
            case "SKY":
                break;
            case "MSTR":
                break;
            case "LMPU":
                break;
            case "STD":
                break;
            case "WSKY":
                break;
            case "SQR":
                break;
            case "SSQR":
                break;
        }
    }


    });
});
Run Code Online (Sandbox Code Playgroud)

我的想法是使用"选择"列表来交换不同的大小.它似乎不像预期的那样容易工作.

我在这里做错了吗?如果需要,我很乐意提供更多信息.在这里使用dojo 1.7.2.

yon*_*oon 6

即使您指定节点ID(如"#da"),dojo.query也不会返回dom节点本身.它总是返回NodeList.所以你必须改变你的代码,如下所示.

  domStyle.set(drawArea[0],"width","300px");
Run Code Online (Sandbox Code Playgroud)

或者您可以使用dojo.byId直接访问dom节点,而不是使用dojo.query.