私はjQueryを使用してclojurescriptを使用していますが、答えはcljsとjsで同じであると思います。
アンカー要素を作成し、その中にアイコン要素を配置するヘルパー関数があります。私のアンカーには、ボタンのタイプに固有のクラスがあります。
私が何かをするとき
$('。my-btn-type')。click(function(e){console.log(e.target)});
- アイコンがクリックされた場合に印刷されます(ハンドラーが親上にある場合でも)
- アンカーのみがクリックされた場合に印刷されます
アンカーで囲まれたアイコンがイベントターゲットであり、ハンドラーがアタッチされたアンカーではないという問題が常に発生します。ハンドラー関数で必要なアンカー要素でデータ属性を使用しています。これにより、event.targetがアイコンであるかアンカーであるかを手動で確認してから、手動でイベントをバブルアップするか、先に進む必要があります。
これはハックのようで、苦痛です。jQuery、js、またはclojurescriptでハンドラーをアタッチする簡単な方法が必要です。これは、ハンドラーがバインドされている要素のみを呼び出します。どうすればよいですか?
編集:
「this」を使用することが必要でしたが、clojurescriptではthis-asマクロが必要です。このスレッドには、ここにリンクの説明を入力する例があります