0

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) });
    }
},
4

1 に答える 1

0

リストビューが要素との相互作用を飲み込まないようにするには、win-interactiveをコンテナに追加する必要があります。

それは、あなたのハンドラーを考えると、なぜあなたはその道を進んでいるのですか、デフォルトで呼び出されたものはあなたにあなたが必要とするものを与えませんか?

于 2012-07-24T02:52:04.183 に答える