iPhone用のドラッグアンドドロップで操作できるWebアプリを作っていて、うっかりはまったtouchendの挙動についてのメモ。
最初に書いたコードはこんな感じでした。
function touchhandler(e) {
var x = e.touches[0].pageX;
switch (e.type) {
case 'touchstart':
break;
case 'touchmove':
break;
case 'touchend':
break;
}
}
document.getElementById('sample').addEventListener("touchend", touchhandler, false);
このプログラムではtouchendの処理が実行されません。
というのもまぁ、気づけば簡単なことなんですが、最後の指をスクリーンから離してtouchendのイベントが発生するときは、もうスクリーンに触ってないのでe.touches[0]がundefinedになるんですね…
なので、touchendのときは、引数で受け取ったe.touchesは注意しましょうという話。
今回参考にさせていただいたのは以下のサイト。
flashcast:フリーで働くITエンジニア集団のブログ: ipod touch用のWeb Applicationを作成してみる(canvasでお絵かき編)
Web開発参考サイト – iPhone 3G DevWiki
タグ: iPhone, JavaScript

HOMMA Teppei

