カランのブログ

ソフトウェアエンジニア / 台湾人 / 福岡生活

今のモード ライト

iOSの一部のバージョンでは、mousedownイベントハンドラが正常に動作しない場合がありますが、他のデバイス(Androidなど)ではmousedownは正常に機能します。

解決策は、モバイルデバイスでmousedownイベントハンドラを使用せず、touchStartを使用することですが、トリガーの順序が影響を受けるかどうかはわかりません。元々は、クリックイベント内では、blurが最初にトリガーされ(存在する場合)、その後にクリックイベントがトリガーされるようにしていましたが、この点を避けるためにmousedownを使用しています。

簡単な実験をCodePenで行います:

See the Pen touchstart-test by 愷開 (@kjj6198) on CodePen.

トリガーの順序はtouchstart > mousedown > blurとなります。したがって、touchstartmousedownの両方のイベントを同時に追加した場合、両方のイベントがサポートされている場合は、touchstart > mousedownの順序で発生するようです。

インターネットで調べてみると、iOS 13以前ではmousedownイベントがトリガーされないことがわかりました。また、iPadの場合、タッチが指から来たかApple Pencilから来たかを判別することもできるようです。

結論

  • iOSmousedownなどのバインディングを行う場合は注意が必要です。できるだけタッチ系のイベントを使用してください。
  • iOS 13とiOS 13以前は分岐点であり、別途テストが必要です。

ここに詳細な動作を記録しておきます。

次の記事

カンマに数字を追加する正規表現の説明

前の記事

站在中間的那群人 / 做出選擇的那群人

この文章が役に立つと思うなら、下のリンクで応援してくれると大変嬉しいです✨

Buy me a coffee

作者

Kalan 頭像照片,在淡水拍攝,淺藍背景

愷開 | Kalan

Kalan です。台湾出身で、2019年に日本へ転職し、福岡に住んでいます。フロントエンド開発に精通しているだけでなく、IoT、アプリ開発、バックエンド、電子工作などの分野にも挑戦しています。 最近、エレキギターを始めました。ブログを通じて、より多くの人と交流できればと思っています。気軽に絡んでください