我对道场很新,并试图找出如何以编程方式而不是以声明方式做某事。我可以轻松地创建一个包含dojox.mobile.ListItem的dojox.mobile.RoundRectList,它本身包含一个doqox.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);
}
但是,与将切换放置在列表项右侧的声明性示例不同,交换机只是放在左侧并覆盖文本。
有人可以建议我如何实现交换机的正确放置吗?我已经准备好接受有一个更好的方法完全这样做(因为我对道场很新)但是却找不到一个例子。
由于
答案 0 :(得分:0)
可能是第一次,但我自己找到了答案。看起来我试图解决这个问题的例子是错误的,或者是在略微不同的背景下。在声明切换时,它应该只是类,而不是使用className。 e.g。
var sw = new dojox.mobile.Switch({
class: "mblItemSwitch"
});
然后,开关显示格式正确并与右侧对齐。