我对 dojo 很陌生,并试图弄清楚如何以编程方式而不是声明方式做某事。我可以轻松地创建一个 dojox.mobile.RoundRectList 包含一个 dojox.mobile.ListItem 本身包含一个 dojox.mobile.switch 声明,例如
<ul data-dojo-type="dojox.mobile.RoundRectList">
<li data-dojo-type="dojox.mobile.ListItem" data-dojo-props="icon:'../../app/images/i-icon-1.png'">
Airplane Mode
<div class="mblItemSwitch" data-dojo-type="dojox.mobile.Switch"></div>
</li>
这是来自这里的入门指南:http: //dojotoolkit.org/documentation/tutorials/1.8/mobile/tweetview/getting_started/demo/
我想要做的是动态生成列表项,每个列表项都有自己的动态生成的按钮。下面的代码就是这样做的('list' 是我之前在代码中创建的对象数组,'ListElement' 是一个以声明方式放置的 dojox.mobile.RoundRectList):
var listObj = dijit.byId("ListElement");
for (var n = 0; n < list.length; n++) {
var item = new dojox.mobile.ListItem({
id: "item" + list[n].ID,
label: list[n].Name
});
var sw = new dojox.mobile.Switch({
className: "mblItemSwitch"
});
item.addChild(sw);
listObj.addChild(item);
}
但是,与开关放置在列表项右侧的声明性示例不同,开关只是放置在左侧并覆盖文本。
谁能建议我如何正确放置开关?我已经准备好接受有一种更好的方法来完全做到这一点(因为我对 dojo 还是很陌生),但我还没有找到一个例子。
谢谢