我想要使用dojo.NodeList.instantiate
方法獲取dijits,該方法需要現有的HTML元素,並在DOM加載時將其轉換爲dijits。無法通過dojo.NodeList.instantiate創建dijits
instantiate
方法的API參考可以找到here。
下面的例子,它調用instantiate
方法在dojo.addOnLoad
方法,應該創建一個BorderContainer
有兩個ContentPane
實例,但的DIV仍當他們開始了,並不會成爲dijit的:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Dijit Test</title>
<style type="text/css">
@import "dojoroot/dijit/themes/tundra/tundra.css";
@import "dojoroot/dojo/resources/dojo.css";
</style>
<script type="text/javascript" src="dojoroot/dojo/dojo.js"
djConfig="parseOnLoad: true"></script>
<script type="text/javascript">
dojo.require("dijit.layout.BorderContainer");
dojo.require("dijit.layout.ContentPane");
dojo.addOnLoad(
function() {
dojo.query("#divOuter").instantiate(
dijit.layout.BorderContainer, {
design : 'sidebar',
gutters : false
}
);
dojo.query("#divMiddle").instantiate(
dijit.layout.ContentPane, {
region : 'center'
}
);
dojo.query("#divRight").instantiate(
dijit.layout.ContentPane, {
region : 'right',
splitter : true
}
);
}
);
</script>
</head>
<body>
<div id="divOuter" style="width:400px;height:300px">
<div id="divMiddle">Middle box</div>
<div id="divRight">Right box</div>
</div>
</body>
</html>
我已經在Firefox 3.5和Internet Explorer 7中嘗試了上述代碼,並且都無法呈現dijits。如果我指定在屬性對象中的標準HTML屬性(如style
屬性),這種風格變化正確顯示,這表明對象被讀取:
// The red border appears when using this example
dojo.query("#divRight").instantiate(
dijit.layout.ContentPane, {
region : 'right',
splitter : true,
style : 'border:1px solid red'
}
);
以下HTML(使用dojoType
和其他屬性的屬性)正常工作 - 在與使用BorderContainer正確ContentPanes同時出現在瀏覽器:
<div dojoType="dijit.layout.BorderContainer" design="sidebar" gutters="false"
style="width:400px;height:300px">
<div dojoType="dijit.layout.ContentPane" region="center">Middle box</div>
<div dojoType="dijit.layout.ContentPane" region="right" splitter="true"
style="width:200px;">Right box</div>
</div>
請誰能告訴我,爲什麼instantiate
例如不工作?
我做了很多搜索,但似乎無法找到任何其他人與此問題,這可能意味着我沒有正確使用instantiate
方法!
謝謝。
非常感謝塞斯 - 現在所有的工作! – user143565 2009-07-27 13:06:43