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 回答