我試圖捕捉的「手勢」是一個點擊,但只有當一個元素(其他或相同)已經觸摸它時纔會點擊。因此,觸摸(1)按下按鈕,同時觸摸(2)輕觸所選選項,觸摸(1)釋放並按下按鈕。移動Safari - 「touchend」事件在最後一次觸摸移除時不會觸發?
我遇到的問題是最後一點。當我釋放最後一根手指時,「touchend」事件沒有被解僱?所以我無法按下按鈕?
..此外,「touchend」事件總是touches.length = 0?
這裏有一些代碼,所以你可以看到我的意思。我認爲這可能是移動Safari中的一個錯誤?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Multi-touch problem</title>
<style>
#touchpane{
width:900px;
height:500px;
background-color:#333;
}
</style>
</head>
<body>
<div id="touchpane" click="void();"></div>
<script>
var tp = document.getElementById("touchpane");
tp.addEventListener('touchstart', function(e){
e.preventDefault();// to stop copy and paste
console.log("touchstart " + e.touches.length);
}, false)
tp.addEventListener('touchend', function(e){
console.log("touchend " + e.touches.length);
// not called when last finger removed?
}, false)
tp.addEventListener('touchcancel', function(e){
console.log("touchcancel");
}, false)
</script>
</body>
</html>
一定要包含您的操作系統版本。這在3.1.3(第一代iPod touch)中的預期效果:「touchstart 1」,「touchstart 2」,「touchend 1」,「touchend 0」。 – 2010-12-10 21:59:57
當然對不起。 3.2.1在iPad上。這和其他一些似乎已經修復在4.2 – 2011-01-01 19:23:47