ちょっと古いスマホ(iPhone5SとかAndroidの4.x 辺り)のブラウザだと、e.preventDefault()が効かないので、a タグの処理が走ってしまう….
で、ググったりテストしたりして、分かったこと。
- onClickだと、どうやっても無理。
- onTouchEndでも、どうにも無理。
- onTouchStartなら行けそう!
- e.stopPropagation()はなんか、効くっぽい。
って事で、以下の様な感じにしたら、なんとか動いた。
$('a').on("touchstart",function(e){
e.preventDefault(); ←普通はこれでキャンセル
e.stopPropagation(); ←問題スマホは、これでキャンセル
//処理内容
}