さて、この場合、ListItemコンテナのonShow関数(または他のonchangeイベント)をフックできると思います。アイテムをリロードする必要があるかどうかを評価するために、上記のハンドルのリスナーを作成します。以下は、これらの情報を含むアイテムのラベルではなく、item.onclickのコンテンツが表示されていることを前提としています。
または、初期化中にこれらすべてを実行して、ListItemコンテナーがカスタムonClickコードで拡張されるようにします。
単純に見えますが、プログラムでこのアイテムに変更する場合、どこで、いつ、またはいくつかの癖が生じる可能性がありますが、ここでは次のようになります。
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);