Javascript ListView未激发selectionchanged
我的HTML:Javascript ListView未激发selectionchanged,javascript,javascript-events,winjs,windows-8.1,Javascript,Javascript Events,Winjs,Windows 8.1,我的HTML: <div id="listViewBoxOffice" data-win-control="WinJS.UI.ListView" data-win-options="{ itemTemplate: select('#movieThumbnailTpl'), selectionMode: 'single' }"> </div> 我的问题是: 事件selectionchanged从未触发。触发了事件SelectionChangein
<div id="listViewBoxOffice"
data-win-control="WinJS.UI.ListView"
data-win-options="{ itemTemplate: select('#movieThumbnailTpl'), selectionMode: 'single' }">
</div>
我的问题是:
事件selectionchanged从未触发。触发了事件SelectionChangeing,但在newSelection中它的值不正确。虽然文档对此没有我认为的那么清楚,但您需要将tapBehavior属性设置为toggleSelect,以便完全选中某个项目。默认情况下,该行为是调用的,因此不会完全选择该项。它单击,但未被选中 MSDN中有一个不错的例子 如果存储listViewBoxOffice实例的副本,则可以从事件中通过承诺获取当前列表:
listViewBoxOffice.selection.getItems().done(function(items) {
// do something with the items...
});
请尝试使用已调用的项。这是Msdn链接 并尝试相应地更改选择。
此外,如果这不起作用,或者您只想更改选择,请在您设计的模板中发布。将需要浏览整个代码:以检查selectionchanged事件是否正常工作。我认为,当我们仅单击listview项目时,它需要iteminvoke事件,选择时,我们需要右键单击该项目。 下面是触发selectionchanged事件的代码snipet
<div id="UserListView" data-win-control="WinJS.UI.ListView" style="border-top: 5px solid #000; min-width:500px;"
data-win-options="{
selectionMode:'multi',
itemTemplate:select('#itemsList'),
layout:{
type:WinJS.UI.GridLayout}}"
>
</div>
设置断点,您可以在evt中签入type=selectionchanged
<div id="UserListView" data-win-control="WinJS.UI.ListView" style="border-top: 5px solid #000; min-width:500px;"
data-win-options="{
selectionMode:'multi',
itemTemplate:select('#itemsList'),
layout:{
type:WinJS.UI.GridLayout}}"
>
</div>
UserListView.addEventListener("selectionchanged", selection);
function selection(evt) {
var test = "testing";
}