0

我正在将一些 dojo 1.6 代码迁移到 dojo 1.8,但我无法让布局表现相同。因此,我将代码剥离到最低限度,希望能解决问题并最终得到 2 个相同的 jsfiddles。我将代码从一个复制到另一个......但是其中一个导致分割的dojo ContentPanes,而另一个则没有。

示例 #1(布局有效):http: //jsfiddle.net/mmlitvin/3onan361/17/

示例 #2(布局不起作用):http: //jsfiddle.net/mmlitvin/Lt0a2fhd/

HTML

<body class="claro">
<div data-dojo-type="dijit.layout.BorderContainer" id="mainBC">  

    <div data-dojo-type="dijit.layout.BorderContainer" id="splitBC" data-dojo-props="region:'center'">
        <div data-dojo-type="dijit.layout.ContentPane" id="topPane" data-dojo-props="region:'top'">SQL Statement and details</div>
        <div data-dojo-type="dijit.layout.ContentPane" id="leftPane" data-dojo-props="region:'center'">Left Pane</div>
        <div data-dojo-type="dijit.layout.ContentPane" id="rightPane" data-dojo-props="region:'right',splitter:'true',minSize:1" style="width:50%;">Right Pane</div>
    </div>

</div>

Javascript

debugger;
dojo.require('dojo.parser');
dojo.require("dijit.layout.ContentPane");
dojo.require("dijit.layout.BorderContainer");
dojo.require("dijit.Dialog");

CSS

#mainBC {
height:600px;
}
#topPane {
height: 15px;
border:none;
padding:0px;

}

4

1 回答 1

0

它们不相同。如果单击Fiddle Options左侧菜单中的 ,您会注意到正在工作的 JSFiddle 包含djConfig="parseOnLoad:true"在其中,Framework <script> attribute 而另一个则没有。

JSFiddle 文档说明了有关此属性的以下内容:

Framework <script> attribute:
    An ability to add special attributes to the script tag loading the framework. 
    That would result with <script type="text/javascript" src="/js/lib/someframework.js" {attributes}></script>

这意味着dojo/parser当页面加载到您的第二个 JSFiddle 中时,它没有运行。在您的实际代码中,只需添加djConfig="parseOnLoad:true到您的<script>标签。

于 2015-02-09T18:00:29.230 回答