单击项目时显示弹出窗口

时间:2012-07-23 23:41:45

标签: javascript windows-8 microsoft-metro

在Metro应用程序中,如何在用户单击ListView项的子元素时显示弹出按钮。我的意思是当用户点击下面的ListView项目的“item-overlay”时,应显示一个弹出窗口。我遇到的问题是Metro ListView没有为我提供一个事件方法来获取itemInvoked中的DOM。

HTML

<!-- Detail items -->
<div class="itemtemplate" data-win-control="WinJS.Binding.Template">
    <img class="item-image" src="#" data-win-bind="src: backgroundImage; alt: title" />
    <div class="item-overlay">
        <h4 class="item-title" data-win-bind="textContent: shortTitle; id: key"></h4>
    </div>
</div>

JS。这是ListView项目的itemInvoked事件

itemInvoked: function (args) {
    console.log("groupItems:itemInvoked");
    if (appView.value === appViewState.snapped) {
        // If the page is snapped, the user invoked a group.
        var group = Data.groups.getAt(args.detail.itemIndex);
        nav.navigate("/pages/groupDetail/groupDetail.html", { groupKey: group.key });
    } else {
        // If the page is not snapped, the user invoked an item.
        var item = Data.items.getAt(args.detail.itemIndex);

        nav.navigate("/pages/itemDetail/itemDetail.html", { item: Data.getItemReference(item) });
    }
},

1 个答案:

答案 0 :(得分:0)

您可能需要将win-interactive添加到容器中,以确保列表视图不会吞噬与元素的任何交互。

这说明,给你的处理程序,为什么你甚至走这条路,是不是默认调用的东西给你你需要的东西?