投稿日:

jquery.overscroll.js を使うと input タグ等が反応しなくなる問題の対処


jquery.overscroll.js ver 1.6.0 を使ってて、その領域内に input[type=text] や textarea タグなどが入っていると、それらの要素が反応しなくなります。該当の要素に cancelOn を指定しても改善されません。

困ったので、コードを見てみると原因が分かりました。cancelOn を判定している箇所があるのですが、その判定以前に、event.preventDefault() しています。これにはこれで意味があるのかも知れませんが、event.preventDefault() の記述を cancelOn 判定後に移動させると、期待どおり input や textarea などのタグが通常通り反応するようになり、また他にも特段影響も見られないので、とりあえずヨシとしたいと思います。

今後改善や改良があるかも知れませんが、以下、修正した部分のコードです。
jquery.overscroll.js のバージョンは ver 1.6.0 です。

上のコードで、348 行目を、361 行目に移動させています。

§

ちなみに、この件は不具合修正の依頼だけ対応したのですが、よりあたらしい jquery.overscroll.js のリポジトリをみてると、別のアプローチですが、修正されているみたいですね。良かったです。