我目前正在尝试使用列表视图来驱动 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
的相关页面的函数期间调用它时。
当我进行调试时,似乎我对列表中项目的查询在 pagesready
函数期间没有返回任何内容,所以我假设此时尚未呈现列表并且 DOM 查询没有返回任何内容。
所以问题是,在呈现后选择项目(或在列表视图上执行操作)的推荐方法是什么?
我认为它们可能是一个“afterrender”类型的事件,我可以在其中调用该函数,但我似乎找不到任何有效的东西。
有任何想法吗?