logo
  • 現在做什麼
  • 關於我

Kalan

文章分類

  • 前端
  • 開發筆記
  • 雜談
  • 年度回顧

快速連結

  • 現在做什麼
  • 關於我
  • 聯絡我
  • 職涯思考🔗

關注我

在福岡生活的開發者,分享軟體開發與日本生活的點點滴滴。

© 2025 Kalan Made with ❤️. All rights reserved.

iOS マウスダウンイベントのトリガーに関する問題

作成者:カランカラン2020年10月22日 10:33
ホーム/フロントエンド
💡

質問やフィードバックがありましたら、フォームからお願いします

英語原文

目次

  1. 結論

本文は台湾華語で、ChatGPT で翻訳している記事なので、不確かな部分や間違いがあるかもしれません。ご了承ください

iOSの特定のバージョンでは、mousedown ハンドラーが正しく機能しないことがありますが、他のデバイス(Androidなど)では、mousedownは正常に動作します。

解決策としては、モバイルデバイスでは mousedown ハンドラーを使用せず、touchStart を使って処理することです。しかし、トリガーの順序に影響が出るかどうかは不明です。元々、click イベントでは、blur が先にトリガーされ(もしあれば)、その後に click イベントが発生します。この点を回避するために、mousedown を使うことにしています。

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

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

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

インターネットで調べたところ、iOS 13未満の時には mousedown イベントがトリガーされないことがわかりました。iOS 13以降は正常に動作するようです。また、iPadの場合は、タッチが指から来たのか、Apple Pencilから来たのかを判別できるようです。

結論

  • iOS で mousedown のようなバインディングを行う際は注意が必要で、できるだけ touch 系のイベントに置き換えるべきです。
  • iOS 13 と iOS 13未満は一つの境界線であり、追加のテストが必要です。

ここに記録しておき、後で詳細な動作を補足していきます。

← カンマに数字を追加する正規表現の説明站在中間的那群人 / 做出選擇的那群人 →

この記事が役に立ったと思ったら、下のリンクからコーヒーを奢ってくれると嬉しいです ☕ 私の普通の一日が輝かしいものになります ✨

☕Buy me a coffee

目次

  1. 結論