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,因为手势第一次附加到项目的方式是 运行。
我正在使用 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,因为手势第一次附加到项目的方式是 运行。