我正在尝试为Windows 8创建一个简单的HTML Metro App。我想显示一个列表视图,并根据点击的项目在屏幕上显示不同的内容。这听起来微不足道吧? 但它不起作用!这是我的代码:
<div id="frameListViewTemplate" data-win-control="WinJS.Binding.Template">
<img data-win-bind="src: picture" class="thumbnail" />
</div>
<div id="basicListView" data-win-control="WinJS.UI.ListView"
data-win-options="{itemDataSource : DataExample.itemList.dataSource, itemTemplate: select('#frameListViewTemplate'),onselectionchanged : handler}">
</div>
比defult.js
var myListView = document.getElementById("basicListView").winControl;
myListView.addEventListener("selectionchanged", handler);
处理程序:
function handler() {
console.log("Inside the handler : ");
}
handler.supportedForProcessing = true;
所以从不调用处理程序。我的问题是:如何将事件监听器及其处理程序添加到listview控件。 如何识别列表视图中的哪个元素被单击。
P.S。 列表视图在我的应用程序中正确显示。 谢谢你的帮助, Ĵ
答案 0 :(得分:2)
要获取“已点击”的项目,您需要使用itemInvoked。如果用户在项目上交叉滑动以选择它,而不是点击/单击以“调用”它,则会发生选择更改。
http://msdn.microsoft.com/en-us/library/windows/apps/br211827.aspx有一些基本的细节。