Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在jQuery中,如果需要,如何将事件传递给父锚点?_Javascript_Jquery_Clojurescript - Fatal编程技术网

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

Javascript 在jQuery中,如果需要,如何将事件传递给父锚点?,javascript,jquery,clojurescript,Javascript,Jquery,Clojurescript,我在clojurescript中使用jQuery,但我认为cljs和js的答案应该是相同的 我有一个helper函数,它创建一个锚元素,然后在其中放置一个图标元素。我的锚有一个按钮类型的唯一类 当我做这样的事情时 $('.my btn type')。单击(函数(e){console.log(e.target)}) 单击图标时打印(即使处理程序位于父级上) 如果仅单击了锚定,则打印 我经常遇到这样一个问题:由锚包装的图标是事件目标,而不是连接了处理程序的锚。我正在使用锚元素中的数据属性,这些属

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

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

当我做这样的事情时

$('.my btn type')。单击(函数(e){console.log(e.target)})

  • 单击图标时打印(即使处理程序位于父级上)
  • 如果仅单击了锚定,则打印
我经常遇到这样一个问题:由锚包装的图标是事件目标,而不是连接了处理程序的锚。我正在使用锚元素中的数据属性,这些属性是处理程序函数所需的。这迫使我手动检查event.target是图标还是锚,然后手动弹出事件或向前移动

这似乎有点刻薄,令人痛苦。在jQuery、js或clojurescript中,必须有一种附加处理程序的简单方法,它只调用处理程序绑定到的元素。我该怎么做

编辑:


使用“this”是我所需要的,但在clojurescript中,this as宏是必需的。此线程有一个示例

如果我理解正确,那么您似乎正在连接锚定和图标的单击事件

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

e、 g:



将始终引用您将事件绑定到的元素。因此,问题是,单击图标时会触发事件?我不知道是这样的。很高兴知道。不幸的是,我无法从clojurescript访问“this”对象。如果使用“this”是我想做的事情的惯用方法,那么它可能需要另一个线程。是的,单击内部图标元素调用将触发事件和事件。目标是图标而不是父锚点。为什么您关心目标是什么?你想让点击图标的行为与点击
内容其他地方的行为不同吗?我只是在锚上有“我的btn类型”以及我需要访问的数据属性。当我单击锚内的图标时,它仍会触发事件,但很明显,像$(e.target).data(“我的数据”)这样的函数的结果无法正确执行,因为图标没有锚所具有的数据属性。我不想像过去那样将所有的数据属性都添加到这两个元素中。你能发布更多的代码让我看一看并有更好的想法吗?
<a href="#" class="my-btn-type" >
    <img src="../img/icon.png" class="my-btn-type" />
</a>