Android4.0系のtouchendが発火しない問題への対応

特定の要素のみでタッチイベント取りたかったので、 以下のように対応した。

ベースにしたのは以下URL

qiita.com

var Y0,Y1,Y2;
  $('.target')
    .bind( 'touchstart', function(e){
      doSomeThing();

      Y0 = $('body').scrollTop();
      Y1 = e.originalEvent.touches[0].clientY;

      $(document).bind('touchmove.cancel',function(e){
        e.preventDefault();
        Y2 = e.originalEvent.touches[0].clientY;

        // touchmoveをキャンセルしてスクロールが動かないので自前でスクロール
        $('body').scrollTop(Y0 + (Y1-Y2));
      });
  }).bind( 'touchend', function(e){
      doSomeThing();

      $(document).unbind('touchmove.cancel');
  });