dojox.mobile在ListItem中切换

时间:2013-04-19 10:51:17

标签: javascript dojo dojox.mobile

我对道场很新,并试图找出如何以编程方式而不是以声明方式做某事。我可以轻松地创建一个包含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);

}

但是,与将切换放置在列表项右侧的声明性示例不同,交换机只是放在左侧并覆盖文本。

有人可以建议我如何实现交换机的正确放置吗?我已经准备好接受有一个更好的方法完全这样做(因为我对道场很新)但是却找不到一个例子。

由于

1 个答案:

答案 0 :(得分:0)

可能是第一次,但我自己找到了答案。看起来我试图解决这个问题的例子是错误的,或者是在略微不同的背景下。在声明切换时,它应该只是类,而不是使用className。 e.g。

    var sw = new dojox.mobile.Switch({
        class: "mblItemSwitch"
    });

然后,开关显示格式正确并与右侧对齐。