代码之家  ›  专栏  ›  技术社区  ›  JonasT

onItemInvoked在左键单击时不激发

  •  0
  • JonasT  · 技术社区  · 11 年前

    我正在使用VS2013 RC和Win8.1 Pro预览版,并出现以下问题: 在我的JS应用程序中,我有一个带有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 回复  |  直到 11 年前
        1
  •  1
  •   Anobik    11 年前

    请尝试设置

    selectionMode: 'none',
    

    selectionMode: 'Single',
    

    让我知道它是否有效。

    也设置

    IsSwipeEnabled="true"
    

    用于设置触摸手势

        2
  •  0
  •   Brett    11 年前

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

    var myListView = document.getElementById("basicListView").winControl;
    myListView.oniteminvoked = myEventHandler;
    
    function myEventHandler(args) {
        var test = "Oh Hi";
    }