【发布时间】:2013-07-20 22:22:27
【问题描述】:
我目前正在尝试使用列表视图来驱动 Windows 应用商店应用程序 (HTML/JS) 中单独 div 的内容。
我有一个简单的函数,我在我的列表视图的“oniteminvoked”处理程序中调用它。
方法调用
MyApp.Util.addClassById(q(".item"), item.itemId, "selected");
(其中 item.itemId 是我新选择的项目,'q' 是 WinJS.Utilities.query 的别名)
方法声明
function addClassById(elements, selectedId, className) {
elements.forEach(function (el) {
var id = parseInt(el.attributes['data-id'].value, 10);
if (id === selectedId) {
util.addClass(el, className);
}
else {
util.removeClass(el, className);
}
});
}
加载列表视图并选择新项目后,这将按预期工作。当我尝试在相关页面的ready 函数中调用它时,它不会加载。
当我进行调试时,我对列表中项目的查询似乎在页面 ready 函数期间没有返回任何内容,所以我假设此时尚未呈现列表并且DOM 查询不返回任何内容。
所以问题是,在渲染后选择项目(或在列表视图上执行操作)的推荐方法是什么?
我认为它们可能是一个“afterrender”类型的事件,我可以在其中调用该函数,但我似乎找不到任何有效的方法。
有什么想法吗?
【问题讨论】:
标签: windows-8 winjs windows-store