onItemInvoked在左键单击时不会触发

时间:2013-09-26 20:24:15

标签: javascript windows microsoft-metro

我正在使用VS2013 RC和Win8.1 Pro预览版并遇到以下问题: 在我的JS-App中,我有一个带有GridLayout的ListView。

 <div id="basicListView" data-win-control="WinJS.UI.ListView" data-win-options="{
     itemDataSource : MusikSender.itemList.dataSource,
     itemTemplate: select('#mediumListIconTextTemplate'),
     layout : {type: WinJS.UI.GridLayout},
     selectionMode: 'none',
     swipeBehavior: 'none',
     tapBehavior: 'invoke'
     }">
    </div>

并解雇它:

var dataArray = [
  { title: "Number1", text: "Number1", picture: "images/sender/number1.png" }
            ];

 var itemList = new WinJS.Binding.List(dataArray);

var publicMembers =
  {
    itemList: itemList
  };
WinJS.Namespace.define("MusikSender", publicMembers);

function itemInvokedHandler(eventObject) {
   eventObject.detail.itemPromise.done(function (invokedItem) {

     var title = invokedItem.data.title;

   });
 }

 document.querySelector('#basicListView').winControl.oniteminvoked = itemInvokedHandler;

我无法左键单击列表中的任何项目。什么工作:我可以用箭头键+返回选择它们。关于点击行为,不能说什么。

我做错了什么?

2 个答案:

答案 0 :(得分:1)

请尝试设置

selectionMode: 'none',

selectionMode: 'Single',

让我知道它是否有效。

也设置

IsSwipeEnabled="true"

用于设置触摸手势

答案 1 :(得分:0)

我有同样的问题,这是我能让它发挥作用的唯一方法......

var myListView = document.getElementById("basicListView").winControl;
myListView.oniteminvoked = myEventHandler;

function myEventHandler(args) {
    var test = "Oh Hi";
}