0

私はjQueryを使用してclojurescriptを使用していますが、答えはcljsとjsで同じであると思います。

アンカー要素を作成し、その中にアイコン要素を配置するヘルパー関数があります。私のアンカーには、ボタンのタイプに固有のクラスがあります。

私が何かをするとき

$('。my-btn-type')。click(function(e){console.log(e.target)});

  • アイコンがクリックされた場合に印刷されます(ハンドラーが親上にある場合でも)
  • アンカーのみがクリックされた場合に印刷されます

アンカーで囲まれたアイコンがイベントターゲットであり、ハンドラーがアタッチされたアンカーではないという問題が常に発生します。ハンドラー関数で必要なアンカー要素でデータ属性を使用しています。これにより、event.targetがアイコンであるかアンカーであるかを手動で確認してから、手動でイベントをバブルアップするか、先に進む必要があります。

これはハックのようで、苦痛です。jQuery、js、またはclojurescriptでハンドラーをアタッチする簡単な方法が必要です。これは、ハンドラーがバインドされている要素のみを呼び出します。どうすればよいですか?

編集:

「this」を使用することが必要でしたが、clojurescriptではthis-asマクロが必要です。このスレッドには、ここにリンクの説明を入力する例があります

4

1 に答える 1

0

私がそれを正しく理解していれば、アンカーとアイコンの両方のクリック イベントを接続しているようです。

または、アンカーとアイコンのクラス名が同じです。

例えば:

<a href="#" class="my-btn-type" >
    <img src="../img/icon.png" class="my-btn-type" />
</a>
于 2013-03-20T17:50:24.303 に答える