WinJS listView ListLayout 只选择第一行

WinJS listView ListLayout only selecting first row

我打开了列表视图 运行。我可以单击第一行,我的更改会发生,然后再次单击,然后它会按我想要的方式变回。这适用于单一和多重 select 模式以及任何可用的 tapBehaviors。我可以在 directSelect 中 select 不同的行,它们会 select 但每次我单击更改只会影响第一行。我正在使用 ListTemplate 和 ItemInvokedHandler 来使事情正常进行。这是调用的处理程序:

            var listview = document.querySelector('#myNote').winControl;

            listview.addEventListener("iteminvoked", itemInvokedHandler, false);

            function itemInvokedHandler(e) {

                e.detail.itemPromise.done(function (invokedItem) {

                    var whatItis = whatitis

                    if (whatItis === "whatItshouldNOTBe") {

                        var whatItshouldbe = (function () {
                            whatitis
                        })();


                    } else {

                        var whatItshouldNOTbe= (function () {
                            whatItShouldNOTBe

                        })();

                    }

                });
            };

逐步执行该程序,我发现 eventObject(e) 确实包含所有三行的数据,这些数据是 selectable 调用这些行的问题我无法弄清楚。

非常感谢任何帮助。提前致谢。

-Rob0

找到我的答案:

WinJS.Binding.as(document.querySelector(".win-selected").style.height = "70px");

我的 querySelector 没有得到准确的(或不够精确的)元素。检查 DOM 的变化有助于我看到这一点。

我意识到我上面的原始代码可能太稀疏了,无法真正提供任何帮助。

--------更新日期------------ 注意:

使用时:

WinJS.Binding.as(document.querySelector(".win-selected").style.height = "70px");

更准确地说,使用您想要影响的元素的 ID,如下所示:

WinJS.Binding.as(document.querySelector(".win-selected #yourElementID").style.height = "70px");

-Rob0