0

HTML に次のノード構造があります。

<div id="widget1" class="dojoxFloatingPane dijitContentPane dojoxFloatingPaneFg" title=""     role="group" style="position: absolute; top: 82px; left: 231px; width: 984px; height: 276px; z-index: 102;" widgetid="widget1">
<div class="dojoxFloatingPaneTitle" dojoattachpoint="focusNode" role="button" tabindex="0">
<div class="dojoxFloatingPaneCanvas" dojoattachpoint="canvas" style="left: 0px; top: 0px; width: 984px; height: 249px;">
<iframe class="dijitBackgroundIframe" src="javascript:""" role="presentation" style="opacity: 0.1; width: 100%; height: 100%;" tabindex="-1">

次の平和なコードを使用して、Dojo でこの FloatingPane のサイズを設定しようとしています。最初にノードである widget1 ノードを読み取り、次に dojoxFloatingPaneTitle クラスを探して、これらのノードを変数に格納します。次に、Cookie を読み取ると、paneNode にスタイルが正常に設定されます。

            var paneNode = dom.byId("widget1");
            var canvasNode = query(".dojoxFloatingPaneCanvas", paneNode);               

  function(){
                    var wid1saved = dojo.fromJson(cookie("widget1"));
                    domStyle.set(paneNode, {
                        left: wid1saved.x + "pt",
                        top: wid1saved.y + "pt", 
                        width: wid1saved.w + "px", 
                        height: wid1saved.h + "px",
                        position: "absolute"
                    });
                    domStyle.set(canvasNode, {
                        width: wid1saved.w + "px",
                        height: wid1saved.h + "px",
                        backgroundColor: "black"
                    });
                }

外側のノード (paneNode) のサイズを設定しますが、内側のキャンバス (canvasNode) は変更されません。デバッガーで、クエリが適切なノードを見つけていることがわかります。canvasNode スタイルが設定されていない理由はありますか?

どうもありがとう

4

1 に答える 1

2

dojo.query は通常、見つかったオブジェクトの配列を返します。

やってみました:

var canvasNode = query(".dojoxFloatingPaneCanvas", paneNode)[0];
于 2012-08-09T12:04:10.367 に答える