好的,在这种情况下,我想你可以挂钩 ListItem 容器的 onShow 函数(或任何其他 onchange 事件)。为所述句柄创建一个侦听器,以评估您的项目是否需要重新加载。以下假设是 item.onclick 内容显示 - 而不是包含这些信息的项目标签
或者更好的是,在初始化期间执行所有这些操作,以便使用自定义 onClick 代码扩展您的 ListItem 容器。
看起来很简单,但可能会引入一些怪癖,在哪里/何时/如果您以编程方式更改此项目,但是这里有:
function checkItem() {
// figure out if DOM is present and if it should be
if( isLoggedIn() ) {
this.getChildren().forEach(function(listitem) {
if( dojo.query("#ID_TO_LOOK_FOR", listitem.domNode).length == 0 ) {
// this references the listItem, refresh contents.
// Note: this expects the listitem to be stateful, have no testing environment at time being but it should be
listitem.set("url", listitem.url);
}
});
}
}
最好将其设置在您的容器构造ListItem
中
var listItemParent = new dojox.mobile.RoundRectList({
onShow : checkItem,
...
});
或者创建监听器
var listItemParent = dijit.byId('itemRegistryId');
// override onClick - calling inheritance chain once done
dojo.connect(listItemParent, "onClick", listItemParent, checkItem);