WinJS listview iteminvokedHanlder如何

WinJS listview iteminvokedHanlder how to

我正在使用 iteminvokedHandler,想知道是否有更好的方式与 listView 交互。

目前正在使用:

        WinJS.UI.processAll(root).then(function () {

            var listview = document.querySelector('#myNotePad').winControl;
            listview.addEventListener("iteminvoked", itemInvokedHandler,false);

            function itemInvokedHandler(e) {

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

                    myEdit();

                });
            };


        });

问题是每次我单击列表视图时,myEdit() 都是 运行 并在列表视图中传播。我想知道如何做一次并停止调用列表视图,直到我完成 myEdit?有没有更简单的方法来处理这种情况?

当您遇到思维障碍并忘记一些基础知识时(是的,我仍在学习),这很简单但很难看清:

 var testtrue = true;      

       WinJS.UI.processAll(root).then(function () {

            var listview = document.querySelector('#myNotePad').winControl;
            listview.addEventListener("iteminvoked", itemInvokedHandler,false);

            function itemInvokedHandler(e) {

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

                  if (testtrue === true){

                    myEdit();

                  }  


                });
            };


        });

在我的编辑中:

    function myEdit() {

        var theelem = document.querySelector(".win-selected #myNotes");

        var gestureObject = new MSGesture();  
        gestureObject.target = theelem;
        theelem.gestureObject = gestureObject;

        theelem.addEventListener("pointerdown", pointerDown, false);

        theelem.addEventListener("MSGestureHold", gestureHold, false);


        function pointerDown(e) {
            e.preventDefault();
            e.target.gestureObject.addPointer(e.pointerId);
        }


        function gestureHold(e) {

            if (e.detail === e.MSGESTURE_FLAG_BEGIN && test === true) {
                e.preventDefault();
                    editNotes();

              } else {


                }

            console.log(e);
        }

        theelem.addEventListener("contextmenu", function (e) {
            e.preventDefault();}, false); //Preventing system menu

    };


    function editNotes() {

      //The Code I wish to execute

        return test = false;
    };

我需要的是一个条件语句,这样它会 运行 如果为真,如果为假则不。需要在 gestureHold 中完成相同的测试,否则它将继续在调用的项目上触发 myEdit,因为手势第一次附加到项目的方式是 运行。