Ibm mobilefirst 如何获取所选Dojox.mobile.listItem的索引值?
我正在使用DOJO toolkit开发一个worklight项目。因为我是worklight和DOJO的新手,所以我刚刚创建了一个列表,并尝试获取单击列表的索引,以便在下一个视图中显示相应的描述/操作。 我尝试在listItem“onClick”函数中传递索引值,但在传递索引参数后,我无法移动到视图中 HTML文件Ibm mobilefirst 如何获取所选Dojox.mobile.listItem的索引值?,ibm-mobilefirst,dojo,dojox.mobile,Ibm Mobilefirst,Dojo,Dojox.mobile,我正在使用DOJO toolkit开发一个worklight项目。因为我是worklight和DOJO的新手,所以我刚刚创建了一个列表,并尝试获取单击列表的索引,以便在下一个视图中显示相应的描述/操作。 我尝试在listItem“onClick”函数中传递索引值,但在传递索引参数后,我无法移动到视图中 HTML文件 <div data-dojo-type="dojox.mobile.ScrollableView" id="view0" data-dojo-props="se
<div data-dojo-type="dojox.mobile.ScrollableView" id="view0"
data-dojo-props="selected:false,scrollDir:'v'">
<div data-dojo-type="dojox.mobile.Heading"
data-dojo-props="label:'View0'" ></div>
<ul data-dojo-type="dojox.mobile.RoundRectList" id="dataList">
</ul>
<div data-dojo-type="dojox.mobile.Heading"
data-dojo-props="fixed:'bottom'"></div>
</div>
JS文件
function abcd()
{
..
...
...
var dlist = dijit.registry.byId("view0");
for(var i=1;i<=3;i++)
{
var lstId = "list" + i;
var list = new dojox.mobile.ListItem({label: labl,rightIcon:"mblDomButtonBlueCircleArrow",transition:"slide",id:lstId,onClick:dispData(lstId),moveTo:"#"});
}
dlist.addChild(list);
}
function dispData(index)
{
//debugger;
alert(index);
dijit.registry.byId("view0").performTransition("**someview***", 1, "slide");
}
函数abcd()
{
..
...
...
var dlist=dijit.registry.byId(“view0”);
对于(var i=1;i构建行,如下所示:
..'label': 'xx', 'moveTo':'#', 'onClick':function(){ yourFunction('id_of_item')} ..
使用此in功能可移动到另一个视图
var w = dijit.byId('currentView');
w.performTransition('newView',1,"slide",null); //or #newView
它对我有效。如果您将循环索引用作循环中定义的单击处理程序的闭包变量,则会显示警报?它将在函数中输入?,这将不起作用。(参见示例) 我发现只需将id添加到ListItem,然后使用事件在一个单击处理程序中查找该项就更容易了:
function listItemHandler(event) {
// Look up the clicked ListItem and get its id
var id = dijit.registry
.getEnclosingWidget(event.currentTarget).id;
alert(id);
}
var dlist = dijit.registry.byId("dataList");
for ( var i = 1; i <= 3; i++) {
var lstId = "list" + i;
var list = new dojox.mobile.ListItem({
label : "label" + lstId,
rightIcon : "mblDomButtonBlueCircleArrow",
transition : "slide",
id : lstId,
moveTo : "#"
});
dlist.addChild(list);
}
dojo.query("#dataList .mblListItem").on("click", listItemHandler);
函数listItemHandler(事件){
//查找单击的ListItem并获取其id
var id=dijit.registry
.getEnclosuringWidget(event.currentTarget).id;
警报(id);
}
var dlist=dijit.registry.byId(“数据列表”);
对于(var i=1;我很感谢回复。我的问题是如何获取所选的listItem索引,以便在另一个视图中根据所选的一个显示数据。我编辑了我的JS文件。在这里,我试图在for循环中创建3个listItem。我还动态创建每个listItem的id。当我执行代码并单击任何列表项时我收到“list3”警报。警报仅显示最后一个lstId值,即list3。感谢您的回复。dojo.query(“#dataList.mblListItem”).on(“click”,listItemHandler);mblListItem是dojo解析器添加到每个列表项元素中的类。