dojox.列表项中的移动交换机

dojox.mobile Switch in ListItem

本文关键字:移动 交换机 列表 dojox      更新时间:2023-09-26

我对dojo很陌生,并试图弄清楚如何以编程方式而不是声明方式做一些事情。我可以很容易地创建一个dojox.mobile.RoundRectList,其中包含一个dojox.mobile. listtitem,它本身包含一个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的新手),但还没有找到一个例子。

谢谢

可能是第一次,但我自己找到了答案。看起来我所借鉴的例子要么是错误的,要么是在一个稍微不同的背景下。而不是使用className声明开关时,它应该只是一个类。例如

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

开关显示正确格式并向右对齐。