異なるtouch
イベントは、event.target
で接続できます。
W3C specs on touchmove
event:
このイベントのターゲットは、タッチポイントは以降のインタラクティブ領域外に移動した場合でも、このタッチポイントを表面上に置いたときtouchstartイベントを受信した同じ要素である必要がありますターゲット要素
だから、event.target
を追跡:
document.addEventListener("touchstart", onTouchStart);
document.addEventListener("touchend", onTouchEnd);
document.addEventListener("touchcancel", onTouchCancel);
var targets = []; // create array with all touch targets
// still needs some sort of garbage collection though
function onTouchStart(event){
targets.push(event.target); // add target to array
}
function onTouchEnd(event){
// loop through array to find your target
for (var i = 0; i < targets.length; i++) {
if (targets[i] == event.target) { //test target
// this is your match! Do something with this element
targets[i].splice(i,1); // remove entry after event ends;
}
}
}
function onTouchCancel(event){
// loop through array to find your target
for (var i = 0; i < targets.length; i++) {
if (targets[i] == event.target) { //test target
// Just delete this event
targets[i].splice(i,1); // remove entry after event ends;
}
}
}
注:テストされていません。私は@Strahが良い解決策を持っていることを知っている、私は少し簡素化されているだけtouch-idではなく、event.targetをチェックする。しかし、それは同様の概念を示しています。
なぜあなたはXを格納しない、Yタッチが開始され、リリース時にその1をretrive ... –
私はうまくいけば、それはあなたが探していたものです、私の答えを更新しました。 – strah