我是dojo的新手,正在尝试解决如何通过编程而不是声明的方式来做一些事情。我可以很容易地创建一个包含dojox.mobile.ListItem的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/
我想做的是动态地生成列表项,每个列表项都有自己动态生成的按钮。下面的代码做到了这一点(‘dojox.mobile.RoundRectList’是我在前面代码中创建的一个对象数组,‘list’是一个声明式放置的列表):
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的新手),但是还没能找到一个例子。
谢谢
发布于 2013-04-19 20:29:22
可能是第一次,但我自己已经找到了答案。看起来我抄袭的例子要么是错误的,要么是在一个稍微不同的上下文中。声明开关时不应该使用className,而应该只使用类。例如:
var sw = new dojox.mobile.Switch({
class: "mblItemSwitch"
});然后,开关显示为正确的格式并右对齐。
https://stackoverflow.com/questions/16102935
复制相似问题