疑似要素のクリック イベントの検出: 誤りが暴かれた
高度なスタイル技術を使用して要素を操作する魅力にもかかわらず、疑似要素のようなイベント検出に関しては、遍在する :before と :after は依然としてわかりにくいものです。経験豊富な開発者ならご存知のとおり、ブラウザのイベント バブリングおよびキャプチャ メカニズムは疑似要素を完全にバイパスします。
提供されたコード スニペットに示されているように、親要素 (この場合は段落) にバインドされたクリック イベントがトリガーされます。要素内のどこでクリックが発生したかは関係ありません。これには、青色の背景と赤色の擬似要素の両方が含まれます。
このイベント伝播動作の理由は、擬似要素の固有の性質にあります。これらは実際の DOM 要素ではなく、既存の要素のプレゼンテーションを拡張する手段です。その結果、直接イベントを受信する機能が不足します。
疑似要素でのみクリックを処理する機能が必要な場合は、別のアプローチを検討する必要があります。 1 つの解決策は、親内にネストされ、擬似要素と一致するように視覚的に配置されるスパンなどの子要素を作成することです。疑似要素の代わりに子要素をスタイル設定し、それにイベント リスナーをバインドすることで、対象領域のみで効果的にクリックをキャプチャできます。
この回避策は、クリックを直接検出する単純さを完全には再現できない可能性があります。疑似要素上では、依然として、目的の機能を実現するための最も実行可能なソリューションです。
以上がCSS 疑似要素のクリック イベントを本当に検出できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。