在jQuery中,如果需要,我如何将事件传递给父锚?

时间:2013-03-20 17:36:45

标签: javascript jquery clojurescript

我在使用jQuery的clojurescript中,但我认为cljs和js的答案应该相同。

我有一个辅助函数,它创建一个锚元素,然后在其中放置一个图标元素。我的锚有一个独特的按钮类型类。

当我做

之类的事情时
  

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

    如果点击了图标,则
  • 打印(即使处理程序在父级上)
  • 如果仅点击锚点,则
  • 打印

我经常遇到一个问题,即由锚点包装的图标是事件目标,而不是附加了处理程序的锚点。我在我的锚点元素中使用数据属性,这在我的处理函数中是必需的。这迫使我手动检查event.target是图标还是锚点,然后手动冒泡事件或继续前进。

这看起来很乱,很痛苦。必须有一种简单的方法来附加jQuery,js或clojurescript中的处理程序,它只会调用处理程序绑定的元素。我该怎么做?

编辑:

使用“this”是我所需要的,但在clojurescript中需要这个宏。这个帖子有一个例子enter link description here

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您似乎正在为锚点和图标连接点击事件。

或者锚点和图标具有相同的类名。

例如:

<a href="#" class="my-btn-type" >
    <img src="../img/icon.png" class="my-btn-type" />
</a>