我有一个WinJS列表视图,我将MSGesture附加到第一次点击/点击时不会触发。点击/点击项目后,只需点击一下即可完成。这让我相信它不会马上附上。这是一个MSGestureHold:
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("MSGestureStart", gestureStart, false);
theelem.addEventListener("MSGestureHold", gestureHold, false);
theelem.addEventListener("MSGestureEnd", gestureEnd, false);
function pointerDown(e) {
e.target.gestureObject.addPointer(e.pointerId);
//console.log(e);
}
function gestureStart(e) {
}
function gestureHold(e){
console.log(e);
}
function gestureEnd(e){
e.target.gestureObject = null;
}
};
从itemInvokedHandler:
中调用该函数 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) {
var setelem = document.querySelector(".win-selected #myNotes");
setImmediate(setelem.addEventListener("pointerdown", myEdit(), false));
//hopeThisWorks();
//myEdit();
});
};
});
正如您所看到的,我尝试使用函数调用和addEventListener。 奇怪的是,我还有另一个功能,可用于造型,它立即发射没有问题。让我思考它是如何处理手势的,或者应该是这样。
现在可能影响这个的html是:
layout:{type: WinJS.UI.ListLayout},
selectionMode: 'multi', tapBehavior: 'directSelect'
我尝试过“tapBehavior:invokeOnly”,但这有点打破了一切。
谢谢你看看。
-Rob0